670 likes | 764 Views
数据库原理与程序设计. 主讲: 李 浩. 华中农业大学资环学院信息系. 教学环节和成绩评定. 课堂讲授 教学环节 课外阅读 上机实践 上机考查 20% 成绩评定 期中考查 10% 期末考试 60% 作业及出勤 10% 联系方式 E-Mail : flylihao@mail.hzau.edu.cn Tel : 87280664. 主要参考书目. 数据库系统概念 Abraham Silberschatz, Henry F.Korth, S.Sudarshan,
E N D
数据库原理与程序设计 主讲: 李 浩 华中农业大学资环学院信息系
教学环节和成绩评定 课堂讲授 • 教学环节课外阅读 • 上机实践 上机考查 20% • 成绩评定期中考查 10% • 期末考试 60% • 作业及出勤 10% • 联系方式E-Mail : flylihao@mail.hzau.edu.cn • Tel : 87280664
主要参考书目 • 数据库系统概念 • Abraham Silberschatz, Henry F.Korth, S.Sudarshan, • 杨冬青,唐世渭等译,机械工业出版社,2000 • 对象-关系数据库管理系统──下一个大浪潮 • Michael Stonebraker, Dorothy Moore • 杨冬青,唐世渭,裴芳等译,北京大学出版社,1997 • 数据库系统实现 • Hector Garcia-Molina, Jeffery D.Ullman,Jennifer Widom, • 杨冬青,唐世渭,徐其钧等译,机械工业出版社,2001 • 数据库系统概论(第三版) • 萨师煊,王珊,高等教育出版社,2001
学习方法——四项修炼 • 第一项修炼:自我超越( Personal Mastery ) • “自我超越”的修炼是学习不断理清并加深个人的真正愿望,集中精力,培养耐心,并客观地观察现实的过程。它是学习型组织的精神基础。精通“自我超越”的人,能够不断实现他们内心深处最想实现的愿望,他们对生命的态度就如同艺术家对于艺术一样,全心投入、锲而不舍,并不断追求超越自我。有了这种精神动力,个人的学习就不是一个一蹴而就的项目,而是一个永无尽头的持续不断的过程。而组织学习根植于个人对于学习的意愿与能力,也会不断学习。
学习方法——四项修炼 • 第二项修炼:改善心智模式 • ( Improving Mental Models ) • “改善心智模式”的修炼是把镜子转向自己,发掘自己内心世界深处的秘密,并客观地审视,借以改善自身的心智模式,更利于自己深入地学习
学习方法——四项修炼 • 第三项修炼:团队学习( Team Learning) • 团队中的成员互相学习,取长补短,不仅使团队整体的绩效大幅提升,而且使团队中的成员成长得更快 • 团队学习的修炼从“对话”( dialogue ) 开始。所谓“对话”,指的是团队中的所有成员敞开心扉,进行心灵的沟通,从而进入真正统一思考的方法或过程。另外,“对话”也可以找出有助于学习的互动模式 • 在现代组织中,学习的基本单位是团队而非个人。除非团队能学习,否则组织就无法学习 • 海森堡——“科学根源于交谈,在不同的人的合作之下,可能孕育出极为重要的科学成果。”
学习方法——四项修炼 • 第四项修炼:系统思考( System Thinking ) • 企业与人类社会都是一种“系统”,是由一系列微妙的、彼此息息相关的因素所构成的有机整体。这些因素通过各不相同的模式或渠道相互影响,“牵一发而动全身”。但是,这种影响并不是立杆见影、一一对应的,而常常是要经年累月才完全展现出来。身处系统中的一小部分,人们往往不由自主地倾向于关注系统中的某一片段(或局部),而无法真正把握整体。系统思考的修炼就在于扩大人们的视野,让人们“见树又见林”
课程目标 • 了解,并结合关系型数据库系统深入理解数据库系统的基本概念,原理和方法。 • 掌握关系数据模型及关系数据语言,能熟练应用SQL语言表达各种数据操作。 • 掌握E-R模型的概念和方法,关系数据库规范化理论和数据库设计方法,通过上机实习的训练,初步具备进行数据库应用系统开发的能力。 • 对数据库领域研究的深入课题有大致了解,激发在此领域中继续学习和研究的愿望,为学习数据库系统高级课程做准备。
第1章 数据库概论 • 在本章中,首先介绍数据库中有关的主要概念,然后回顾数据管理技术的三个发展阶段 • 要求了解数据库的三个发展阶段及各阶段的主要特点,掌握数据库中的有关的基本概念、数据库系统的组成及各部分的主要功能 • 重点掌握实体、属性定义和实体型之间的联系类型及特点
信息产业——朝阳产业 • 三低一高 • 低失业、低通胀、低赤字、高增长 • 技术密集型 • 高技术产业+高素质人才
信息收集系统 原始信息 作业层 形 式 化 信息系统 数据库管理系统 数据 管理层 归 纳 决策支持系统 决策层 决策信息 数据库在信息系统中的地位
数据库在信息系统中的地位 • 四大支柱 • 操作系统、网络、计算机语言、数据库 • 两大热门 • 网络、数据库。 • 无所不在的数据管理 • Everything Over DB • 如电子商务、数字图书馆、交互视频等等
1.1.1 信息(Information) • 信息的定义 • 信息是关于现实世界事物的存在方式或运动状态的反映的综合,具体说是一种被加工为特定形式的数据,但这种数据形式对接收者来说是有意义的,而且对当前和将来的决策具有明显的或实际的价值。 • 如“2005年硕士研究生将继续扩招20%”,对接受者有意义,使接受者据此作出决策。
1.1.1 信息(Information) • 2. 信息的特征 • 信息源于物质和能量,它不可能脱离物质而存在,信息的传递需要物质载体,信息的获取和传递要消耗能量。 • 如信息可以通过报纸、电台、电视、计算机网络进行传递 • 信息是可以感知的,人类对客观事物的感知,可以通过感觉器官,也可以通过各种仪器仪表和传感器等,不同的信息源有不同的感知形式。 • 如报纸上刊登的信息通过视觉器官感知,电台中广播的信息通过听觉器官感知 • 信息是可存储、加工、传递和再生的。动物用大脑存储信息,叫做记忆。计算机存储器、录音、录像等技术的发展,进一步扩大了信息存储的范围。借助计算机,还可对收集到的信息进行取舍整理。
学习知识 信息与知识 • 知识 • “行动的能力” • “可以辅助我们作出决策或采取行动的有很高价值的一种信息形态” • 可以很快地将信息从一个地方转移到另一个地方,但将知识从一个人转移给另一个人经常是很困难和很慢的
信息与知识 • 信息管理 • 信息管理通过收集、处理、浓缩信息以达到有效的管理 • 知识管理 • 知识管理的焦点是通过信息的收集、存储、发布、重用等获得人的交流与知识共享达到知识的创新目的 • 知识管理是一个过程,个人通过这一过程学习新知识和获得新经验,并将这些新知识和新经验反应出来,进行共享,以用来促进培养、增强个人的知识和机构组织的价值 • 知识管理应该是组织有意识采取的一种战略,它保证能够在最需要的时间将最需要的知识传送给最需要的人。这样可以帮助人们共享信息,并进而将之通过不同的方式付诸实践,最终达到提高组织业绩的目的
1.1.2 数据 (Data) • 1.数据的定义 • 数据是用来记录信息的可识别的符号,是信息的具体表现形式 • 2.数据的表现形式 • 可用多种不同的数据形式表示同一信息,而信息不随数据形式的不同而改变 • 如“2005年硕士研究生将扩招20%”,其中的数据可改为汉字形式“两千零五年”、“百分之二十” • 数据的概念在数据处理领域中已大大地拓宽了,其表现形式不仅包括数字和文字,还包括图形、图象、声音等。这些数据可以记录在纸上,也可记录在各种存储器中。 • 3.数据与信息的联系 • 数据是信息的符号表示或载体,信息则是数据的内涵,是对数据的语义解释 • 数据是符号化的信息;信息是语义化的数据 • 如上例中的数据2005、30%被赋予了特定的语义,它们就具有了传递信息的功能
1.1.3 数据处理 • 数据处理是将数据转换成信息的过程,包括对数据的收集、存储、加工、检索、传输等一系列活动。其目的是从大量的原始数据中抽取和推导出有价值的信息,作为决策的依据 • 可用下式简单的表示信息、数据与数据处理的关系: 信息=数据+数据处理 • 数据是原料,是输入,而信息是产出,是输出结果。“信息处理”的真正含义应该是为了产生信息而处理数据 • 数据处理的中心问题是数据管理 • 数据管理是指对数据的组织、分类、编码、存储、检索和维护
1.1.4 数据管理 • 1.人工管理阶段(20世纪50年代中期以前) • 背景 • 这一阶段计算机主要用于科学计算,数据量小、结构简单,如高阶方程、曲线拟和等 • 硬件中的外存只有卡片、纸带、磁带,没有磁盘等直接存取设备 • 软件只有机器语言,没有操作系统和数据管理数据的软件 • 用户用机器指令编码,通过纸带机输入程序和数据,程序运行完毕后,由用户取走纸带和运算结果,再让下一用户上机操作
人工管理阶段 • 特点 1. 数据不保存 • 因为当时计算机主要用于科学计算,对于数据保存的需求尚不迫切 2. 系统没有专用的软件对数据进行管理 • 每个应用程序都要包括数据的存储结构、存取方法、输入方式等,程序员编写应用程序时,还要安排数据的物理存储,因此程序员负担很重 3. 数据不共享 • 数据是面向程序的,一组数据只能对应一个程序 • 多个应用程序涉及某些相同的数据时,也必须各自定义,因此程序之间有大量的冗余数据 • 4. 数据不具有独立性 • 程序依赖于数据,如果数据的类型、格式、或输入输出方式等逻辑结构或物理结构发生变化,必须对应用程序做出相应的修改
数据1 程序1 访问 数据2 访问 程序2 数据n 访问 程序n 人工管理阶段
1.1.4 数据管理 • 2.文件系统阶段(20世纪50年代后期至60年代中期) • 背景 • 这一阶段计算机不仅用于科学计算,还大量用于信息管理 • 大量的数据存储、检索和维护成为紧迫的需求 • 硬件有了磁盘、磁鼓等直接存储设备 • 在软件方面,出现了高级语言和操作系统 • 操作系统中有了专门管理数据的软件,一般称为文件系统 • 处理方式有批处理,也有联机实时处理
文件系统阶段 • 特点 • 1. 数据以文件形式可长期保存下来 • 用户可随时对文件进行查询、修改和增删等处理 2. 文件系统可对数据的存取进行管理 • 程序员只与文件名打交道,不必明确数据的物理存储,大大减轻了程序员的负担 3. 文件形式多样化 • 有顺序文件、倒排文件、索引文件等,因而对文件的记录可顺序访问,也可随机访问,更便于存储和查找数据 4. 程序与数据间有一定独立性 • 由专门的软件即文件系统进行数据管理,程序和数据间由软件提供的存取方法进行转换,数据存储发生变化不一定影响程序的运行
数据1 程序1 数据2 存取方式 程序2 数据n 程序n 文件系统阶段
文件系统阶段 • 缺陷 1. 数据独立性低 ( Poor data relationship ) • 文件系统的出现并没有从根本上改变数据与程序紧密结合的状况,数据的逻辑结构改变则必须修改应用程序 • 文件系统只是解脱了程序员对物理设备存取的负担,它并不理解数据的语义,只负责存储 • 数据的语义信息只能由程序来解释,也就是说,数据收集以后怎么组织,以及数据取出来之后按什么含义应用,只有全权管理它的程序知道。 • 一个应用若想共享另一个应用生成的数据,必须同另一个应用沟通,了解数据的语义与组织方式
文件系统阶段 2. 数据冗余度大(Redundancy ) • 各数据文件之间没有有机的联系,一个文件基本上对应于一个应用程序,即使不同应用程序所需要的数据有部分相同时,也必须建立各自的文件,而不能共享相同的数据 3.数据一致性差 ( Inconsistency ) • 由于相同数据的重复存储、各自管理,在进行更新操作时,容易造成数据的不一致性。
劳资科 学号 姓名 系别 补贴 房产科 学号 姓名 性别 系别 住址 学籍科 学号 姓名 系别 学分 学位 人事科 学号 姓名 性别 系别 年龄 学位 出身 文件系统阶段 数据查询困难 • 记录之间无联系 • 应用自己编程实现 • 对每个查询都重新编码 数据一致性 难于保证
1.1.4 数据管理 • 3.数据库系统阶段 ( 20世纪60年代末) • 背景 • 20世纪60年代末发生了对数据库技术有着奠基作用的3件大事,标志着以数据库系统为基本手段的数据管理阶段的开始。 • (1)1968年美国的IBM公司推出了世界上第一个数据库管理系统IMS,它是基于层次模型的 • (2)1969年美国数据系统语言协会(CODASYL)的数据库任务组(DBTG)发表了网状数据模型的DBTG报告 • (3)1970年美国IBM公司的高级研究员 E. F. Codd连续发表论文,提出了关系数据模型,奠定了关系数据库的理论基础。
数据库系统阶段 • 特点 • 1. 数据共享性高、冗余少 • 这是数据库系统阶段的最大改进,数据不再面向某个应用程序而是面向整个系统,当前所有用户可同时存取库中的数据。 • 这样便减少了不必要的数据冗余,节约存储空间,同时也避免了数据之间的不相容性与不一致性。 2. 数据结构化 • 按照某种数据模型,将全组织的各种数据组织到一个结构化的数据库中,整个组织的数据不是一盘散沙,可表示出数据之间的有机关联。
人事科 劳资科 系别 年龄 补贴 学位 学号 姓名 住址 学分 学籍科 性别 出身 房产科 数据库系统阶段
数据库系统阶段 • 3. 数据独立性高 • 数据的独立性是指逻辑独立性和物理独立性。 • 数据的逻辑独立性是指当数据的总体逻辑结构改变时,数据的局部逻辑结构不变,由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必须修改,从而保证了数据与程序间的逻辑独立性。 • 例如,在原有的记录类型之间增加新的联系,或在某些记录类型中增加新的数据项,均可确保数据的逻辑独立性。 • 数据的物理独立性是指当数据的存储结构改变时,数据的逻辑结构不变,从而应用程序也不必改变。 • 例如,改变存储设备和增加新的存储设备,或改变数据的存储组织方式,均可确保数据的物理独立性。
数据库系统阶段 • 4. 有统一的数据控制功能 • 数据库为多个用户和应用程序所共享,对数据的存取往往是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据,为确保数据库数据的正确有效和数据库系统的有效运行,数据库管理系统提供下述四方面的数据控制功能。 • (1)数据的安全性(security)控制:防止不合法使用数据造成数据的泄露和破坏,保证数据的安全和机密; • 例如,系统提供口令检查或其他手段来验证用户身份,防止非法用户使用系统;也可以对数据的存取权限进行限制,只有通过检查后才能执行相应的操作。
数据库系统阶段 • (2)数据的完整性(integrity)控制:系统通过设置一些完整性规则以确保数据的正确性、有效性和相容性。 • 正确性是指数据的合法性,如年龄属于数值型数据,只能含0,1,…9,不能含字母或特殊符号 • 有效性是指数据是否在其定义的有效范围,如月份只能用1~12之间的正整数表示 • 相容性是指表示同一事实的两个数据应相同,否则就不相容,如一个人不能有两个性别 • (3)并发(concurrency)控制:多用户同时存取或修改数据库时,防止相互干扰而提供给用户不正确的数据,并使数据库受到破坏 • (4)数据恢复(recovery):当数据库被破坏或数据不可靠时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。
程序2 程序1 程序n 统一存取 数据1 数据2 数据n 数据库系统阶段 • 数据库观点 • 数据不是依赖于处理过程的附属品,而是现实世界中独立存在的对象
数据库系统阶段 • 从文件系统管理发展到数据库系统管理是信息处理领域的一个重大变化。 • 在文件系统阶段,人们关注的是系统功能的设计,因此程序设计处于主导地位,数据服从于程序设计; • 而在数据库系统阶段,数据的结构设计成为信息系统首先关心的问题。 • 数据库技术经历了以上三个阶段的发展,已有了比较成熟的数据库技术,但随着计算机软硬件的发展,数据库技术仍需不断向前发展。
1.2.1 数据库系统结构 • 模式(Schema)是数据库中全体数据的逻辑结构和特征的描述。 • 例如:学生记录定义为(学号、姓名、性别、系别、年龄),称为记录型, • 而(001101,张立,男,计算机,20)则是该记录型的一个记录值。 • 模式只是对记录型的描述,而与具体的值无关。 • 数据库模式与数据库的概念是有区别的。数据库模式是数据库的结构描述,只是一个建立数据库的框架,它本身不涉及具体的数据;数据库是按照数据库模式的规定装入数据而建立的,它是数据库模式的一个“实例”(Instance)。数据库中的数据是经常变化的,而数据库模式一般是不变或很少变化的。
1.2.1 数据库系统结构 • 模式的分级 • 为了提高数据的物理独立性和逻辑独立性,使数据库的用户观点,即用户看到的数据库,与数据库的物理方面,即实际存储的数据库区分开来,数据库系统的模式是分级的 • 数据库系统三级模式结构 • CODASYL(Conference On Data System Language,美国数据系统语言协商会)提出模式、外模式、内模式三级模式的概念。三级模式之间有两级映象
应用A 应用B 应用C 应用D 应用E 外模式1 外模式2 外模式3 外模式/模式映象 模 式 模式/内模式映象 内模式 数据库 1.2.1 数据库系统结构 • 数据库系统的三级模式结构
1. 模式 • 模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,又称概念模式或概念视图。视图可理解为一组记录的值,用户或程序员看到和使用的数据库的内容。 • 模式处于三级结构的中间层,它是整个数据库实际存储的抽象表示,也是对现实世界的一个抽象,是现实世界某应用环境(企业或单位)的所有信息内容集合的表示,也是所有个别用户视图综合起来的结果,所以又称用户共同视图。 • 它表示了数据库的整体数据。 • 由多个“概念记录”组成,包含数据库的所有信息,也称“概念数据库”、“DBA视图”。 • DBMS 提供模式描述语言(模式 DDL— Data Description Language )来定义模式。
2. 外模式 • 又称子模式或用户模式或外视图,是三级结构的最外层,个别用户只对整个数据库的一部分感兴趣,所以外视图是个别用户看到和使用的数据库内容,因此也常把外视图称为用户数据库。 • 它由多种外记录值构成,这些记录值是概念视图的某一部分的抽象表示。即个别用户看到和使用的数据库内容,也称“用户DB”。 • 由多个“外记录值”组成,是概念视图的某一部分的抽象表示。 • 从逻辑关系上看,外模式包含于概念模式。 • DBMS 提供子模式描述语言(子模式 DDL)来定义子模式。
数据库模式 房产科 学籍科 S(S#,SNAME,ADDRESS) S(S#,SNAME,CREDIT) 视图 视图 S(S#,SNAME,SEX,AGE,ADDRESS,CREDIT,DEGREE) 模式
3. 内模式 • 又称存储模式或内视图,是三级结构中的最内层,也是靠近物理存储的一层,即与实际存储数据方式有关的一层,由多个存储记录组成,但并非物理层,不必关心具体的存储位置。内模式中定义的是存储记录的类型、存储域的表示,存储记录的物理顺序、指引元、索引和存取路径等数据的存储组织。 • DBMS 提供内模式描述语言(内模式 DDL)来定义内模式。 • 在数据库系统中,外模式可有多个,而概念模式、内模式只能各有一个。 • 内模式是整个数据库实际存储的表示,而概念模式是整个数据库实际存储的抽象表示,外模式是概念模式的某一部分的抽象表示。
1.2.1数据库系统结构 • 三级结构的优点 • (1)保证数据的独立性。 • 将模式和内模式分开,保证了数据的物理独立性; • 将外模式和模式分开,保证了数据的逻辑独立性。 • (2)简化了用户接口。 • 按照外模式编写应用程序或敲入命令,而不需了解数据库内部的存储结构,方便用户使用系统。 • (3)有利于数据共享。 • 在不同的外模式下可有多个用户共享系统中数据,减少了数据冗余。 • (4)利于数据的安全保密。 • 在外模式下根据要求进行操作,不能对限定的数据操作,保证了其他数据的安全。
1.2.2数据库系统的二级映象 • 数据库系统的三级模式是对数据的三个抽象级别,它使用户能逻辑地抽象地处理数据,而不必关心数据在计算机内部的存储方式,把数据的具体组织交给 DBMS 管理 • 为了能够在内部实现这三个抽象层次的联系和转换,DBMS 在三级模式之间提供了二级映象功能
1. 模式/内模式映象 • 数据库中的模式和内模式都只有一个,所以模式/内模式映象是唯一的。 • 它确定了数据的全局逻辑结构与存储结构之间的对应关系。 • 例如,存储结构变化时,模式/内模式映象也应有相应的变化,使其概念模式仍保持不变,即把存储结构的变化的影响限制在概念模式之下,这使数据的存储结构和存储方法较高的独立于应用程序,通过映象功能保证数据存储结构的变化不影响数据的全局逻辑结构的改变,从而不必修改应用程序,即确保了数据的物理独立性。
2.外模式/模式映象 • 数据库中的同一模式可以有任意多个外模式,对于每一个外模式,都存在一个外模式/模式映象 • 它确定了数据的局部逻辑结构与全局逻辑结构之间的对应关系。 • 例如,在原有的记录类型之间增加新的联系,或在某些记录类型中增加新的数据项时,使数据的总体逻辑结构改变,外模式/模式映象也发生相应的变化, • 这一映象功能保证了数据的局部逻辑结构不变,由于应用程序是依据数据的局部逻辑结构编写的,所以应用程序不必须修改,从而保证了数据与程序间的逻辑独立性。
1.2.3 数据库模式 • ANSI/X3/SPARC提出SPARC报告,其ANSI模型将数据库模式分为外部级、概念级、内部级 • 外部级数据库对应于外模式,也称为用户视图。每一个用户视图均由用户所处理的一组外部记录组成,不同的用户视图可以相互重叠。 • 概念级数据库对应于概念模式,是介于用户级和物理级之间的中间级,是所有用户视图的一个最小并集,又称为 DBA视图。 • 内部级数据库对应于内模式,又称为内部视图。它描述了数据的实际存储组织,是最接近物理存储的一级。内部视图由内部记录组成。
1.3.1 DBMS的功能 • 数据库管理系统(DBMS)是一种负责数据库的定义、建立、操作、管理和维护的软件系统。 • 用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过DBMS进行的 • DBMS就是实现把用户意义下的抽象的逻辑数据处理转换成计算机中的具体的物理数据的处理软件,这给用户带来很大的方便
数据字典 目标模式 模式翻译程序 源模式 1.3.1 DBMS的功能 • 1. 数据定义 • DBMS提供数据定义语言DDL(Data Define Language),定义数据的模式、外模式和内模式三级模式结构,定义模式/内模式和外模式/模式二级映象,定义有关的约束条件 • 注意:用DDL书写的都是源模式,系统不能直接使用,必须由DBMS的DDL编译程序将源模式编译城二进制的目标码,成为机器可执行的目标模式,放在目标库即数据字典中,供系统随时调用
1.3.1 DBMS的功能 • 2. 数据操纵 • DBMS提供数据操纵语言DML(Data Manipulation Language)实现对数据库的基本操作,包括检索、插入、修改、删除等 • DML类型 • 宿主型 • DML不独立使用,嵌入到高级语言(主语言,如C、Fortran、COBOL)程序中使用 • 自含型 • 独立使用,交互式命令方式,如SQL、QBE等