第6部分数据系统基础_第1页
第6部分数据系统基础_第2页
第6部分数据系统基础_第3页
第6部分数据系统基础_第4页
第6部分数据系统基础_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 数据库系统基础 6.1 数据库系统基础 一、数据库系统 1、数据:描述事物的符号,可以是文字、图形、图象、声音、语言。数据是数据库中存储的对象。2、数据库 存放数据的仓库。是长期存放在计算机内、有组织的、可共享的数据集合。 3、数据库管理系统dbms database management system, 是位于用户和操作系统之间的一层数据管理软件。主要功能包括:数据定义 dbms提供一种语言,用来定义数据,称为数据定义语言(data definition language, ddl)数据操纵 dbms提供的用于对数据进行查询、插入、删除和修改的语言(data manipulation

2、 language, dml)数据库的运行管理 在数据库建立、运行和维护时,进行统一管理、控制,以保证数据的安全性、完整性、并发控制和系统恢复。数据库系统 是在计算机系统中引入数据库后的系统,组成如下: 数据库、数据库管理系统、应用系统、数据库管理员(database administrator, dba)和用户。二、数据管理技术的发展过程1、人工管理阶段20世纪50年代中期以前,没有磁盘(只有磁带和纸带),没有操作系统和数据管理软件。其特点如下: 数据不保存 应用程序管理数据 数据不共享 一组数据供一个程序使用,不能共享,存在大量的数据冗余。 数据不具备独立性 当数据改变后,必须对程序进行修

3、改。2、文件系统阶段20世纪50年代后期到60年代中期。有磁盘,有操作系统,操作系统中具备数据管理软件(文件系统)。特点如下:数据可以长期保存文件系统管理数据:数据组织在文件中,实行按名存取。数据具备一定的独立性。共享性差、冗余大:一个文件对应一个程序,共享性差。不同程序中的相同数据必须建立独自的文件,冗余度大,容易造成数据的不一致独立性差文件对应具体的应用程序,文件的结构改变,必须对程序修改。 3、数据库系统阶段 数据结构化:不仅描述数据,还描述数据之间的联系。数据的共享性高、冗余度低:数据库系统对数据进行统一管理,不再面向某个应用,面向整个系统,数据可以被多个应用和多个用户所共享。从而减少

4、了数据冗余,避免了数据的不一致性。数据的独立性高:应用程序和数据库中的数据是独立的。数据库中的数据改变了后,应用程序不需修改。 数据由dbms统一管理和控制数据的安全性得到保证:合法用户对数据进行合法的使用和操作。并发控制数据的完整性检查:正确性和有效性检查。数据库恢复:当出现故障时,将数据库恢复到一致状态。 综上所述,数据库是长期存储在计算机内、有组织的、大量的、共享的数据集合,具有最小的冗余、较高的数据独立性。 6.2 数据模型 是描述数据及数据之间联系的模型。数据库总是基于某种数据模型的。 应能比较真实地模拟现实世界;容易为人所理解;便于在计算机上实现。 一、概念模型首先将现实世界的客观

5、对象抽象为信息世界的某种信息结构,称为概念模型,再将概念模型转换为某一dbms支持的数据模型。基本概念:实体(entity)客观存在并可互相区别的事物称为实体。属性(attribute):实体具有的特性称为属性。属性组合起来表征了一个学生。 码(key):唯一标识实体的属性或属性组。域(domain):属性的取值范围。实体型(entity type):具有相同属性的实体所具有的共同特征和性质。用实体名及属性名集合来抽象。例如,学生(学号、姓名、性别、出生年月、系、入学时间)实体集(entity set)同种实体的集合。全体学生就是一个实体集。 联系(relationship)实体之间存在着联系

6、。实体之间的联系分为三类:(1)一对一联系(1:1):实体集a中的每一个实体最多与实体集b中的一个实体,反之亦然。(2)一对多联系(1:n)实体集a中的每一个实体与实体集b中的n个实体(n=0)联系,而实体集b中的每一个实体与实体集a最多只有一个实体联系。如班级集和学生集是一对多联系。多对多联系(m:n)实体集a中的每一个实体与实体集b中的n个实体(n=0)联系,而实体集b中的每一个实体与实体集a中的m个(m=0)实体联系。如课程和学生之间的联系。课程学生选课2、 概念模型的表示方法实体联系模型(entity-relation) 实体:矩形表示 属性:用椭圆表示 学生学号姓名性别出生年月入学时

7、间系联系:用菱形表示 课程学生选课三、数据模型 层次、网络和关系模型。1、层次模型用树型结构来描述实体及实体之间的联系。特点:(1)只有一个称为根的结点。(2)其它结点有且只有一个双亲结点。表示一对多的实体联系。 优点:简单。缺点:对于多对多联系、一个节点有多个双亲等,不能很好描述。 2、网络模型 用网状结构描述实体及实体之间的联系。特点:(1)允许一个以上的节点无双亲。(2)一个节点可以有多个双亲。优点:直接描述现实世界,效率高。缺点:结构复杂。 2、关系模型用关系(表)来描述实体及实体之间的联系。关系:表元组:表中的一行属性:表的一列主码:唯一确定元组的属性或属性组。关系的描述方式:关系名

8、(属性1,属性2, ,属性n)学生(学号、姓名、性别、出生年月、系、入学时间) 用关系来描述实体及实体之间的联系。如学生课程、学生与课程之间的多对多联系: 学生(学号、姓名、性别、出生年月、系、入学时间) 课程(课程号,课程名,学分) 选课(学号,课程号,成绩)特点:(1)建立在严格的数学基础上。(2)简单:结构简单、清晰易用。(3)存取路径透明。缺点:查询效率不高。 6.3 数据库系统结构 一、模式及其结构 1、模式 描述数据的型,而不涉及值。是对全体数据的逻辑结构的描述。模式的一个具体值称为一个实例。 2、三级模式结构 模式 也称为逻辑模式,是对全体数据的逻辑结构和特征的描述,是所有用户的

9、公共数据视图。与物理存储细节无关,与应用程序无关。 学生(学号,姓名,年龄) 课程(课程号,课程名) 选课(学号,课程号,成绩)外模式也称为子模式或用户模式,是用户看到和使用的局部数据的逻辑结构和特征描述,是用户视图,与具体应用有关的数据的逻辑描述。学习(学号,姓名,课程号,成绩)内模式存储模式,是数据的物理结构和存储方式的描述,是数据的内部表示方式。如是否有索引、聚集,存放在哪个盘等。2、二级映射 外模式/模式:提供逻辑独立性。模式/内模式映射:提供物理独立性。学号姓名性别班级980001张栅女机制99990211李诗女信息99991204王武男电子99学号姓名奖学金980001张栅2009

10、90211李诗500991204王武100学号姓名性别年龄籍贯班级奖学金980001张栅女18江苏机制99200990211李诗女19北京信息99500991204王武男19陕西电子99100980001 990211991204用户用户数据库数据库概念概念数据库数据库物理物理数据库数据库奖学金发放学籍管理应用程序应用程序数据在数据文件中以链表方式存储6.3 sql基础sql( structured query language) 一、建立表create table table_name(column_name data-type consraint, )一、建立表create table e

11、mployee(eid char(6),name varchar(8) not null,age numeric(3,0),country varchar(10) null)一、建立表create table employee(eid char(6) not null primary key,name varchar(8) not null),age numeric(3,0),country varchar(10) null)二、 插入记录insert into 表名 列名表) values (值表)insert into employee (eid, name, age, country)

12、values (3018, zhang, 28, china) insert into employee values (3056, wang, 35, usa)insert into employee (eid, name, country) values (4025, li, russia)二、 插入记录三、修改记录update 表名 set 字段名=表达式 where 条件 update employeeset name=li mingwhere eid=4025三、修改记录update employeeset name=zhang li,age=36,country=usawhere

13、eid=3056可以修改多个字段的值。如果不带where修改所有的记录。四、删除记录delete 表名where 条件delete employeewhere eid=3018 五、 查询记录1、 简单查询select 表达式 from 表名表where 条件group by 字段名表having 条件order by 字段名表 1、 举例select pub_id, pub_name, countryfrom publishersselect * from publishers2、 删除重复的行distict select city, statefrom authersselect dist

14、ict city, statefrom authers 3、 计算表达式 select t i t l e_i d, t ype, p r i c e , price_price*0.3from title select au_lname+.+au_fname, city+.+statefrom authors4、筛选条件 (1)条件:= = != price45.3country=china not and or country=china and age35 (2)举例select title_id, type, price, price - price*0.3 from titleswh

15、ere price - price*0.318select pub_id, pub_namefrom publisherswhere country=usa and state=ca5、 like 列名 not like 模式%: 任意字符串, _:任意一个字符 select au_lname+.+au_fname, city+.+statefrom authorswhere au_fname like d% select au_lname+.+au_fname, city+.+statefrom authorswhere au_id like 72_-%5、 like 6、 结果排序orde

16、r by 字段表通常返回的结果是随机排列的。 select stor_name, cityfrom storesorder by store_nameselect stor_name, cityfrom storesorder by store_name desc select stor_name, cityfrom storesorder by store_name asc6、 结果排序select stor_name, cityfrom storesorder by stor_name, city 用多个列排列。 select stor_name, cityfrom storesorder

17、 by state用不出现的列。 sum(expression)avg( expression )min( expression )max( expression )count( expression ) count(*)7、 统计函数 select avg(price)from titles select max(price)from titleswhere type=business7、 统计函数 s e l e c t av g ( q t y ) , s u m ( q t y ) , count(distict stor_id)from sales select count(*)fr

18、om publisherswhere state=ca7、 统计函数 8、 结果分组 (1)group by 分组列名表select type, avg(price), sum(price), count(*)from titleswhere type in (business, mod_cook, trad_cook)group by typeselect type, pub_id, avg(price), sum(price), count(*)from titleswhere type in (business, mod_cook, trad_cook)group by type, pu

19、b_idgogroup by 分组列名表having 条件对group的分组结果再进一步筛选。 select type, avg(price), sum(price), count(*)from titleswhere price$10group by type(2 ) 使用havingselect type, avg(price), sum(price), count(*)from titleswhere price$10group by typehaving avg(price)$20(2 ) 使用having9、 多表查询(1)笛卡尔乘积select title_id, au_fname

20、from titles, authors select titles.title_id, titles.title, titleauthor.au_id from titles, titleauthor(2 )别名select t.title_id, t.title, ta.au_id from titles t, titleauthor ta select t.title_id, t.title, ta.au_id from titles t, titleauthor tawhere t.title_id=ta.title_id(3)筛选use pubsselect t.title_id,

21、a.au_id from titles t, titleauthor ta, authors awhere t.title_id=ta.title_id and ta.au_id=a.au_id 第7章 关系数据库 7.1 关系的数学定义关系模式:用二维表格来描述实体及实体之间的联系。1 域:同类型值的集合。如整数的集合0,1,2,3 ,大写字母的集合(a,b,c, z)。2 笛卡尔乘积设d1,d2,d3,dn为任意集合,d1,d2,d3, dn的笛卡尔乘积乘积为:d1d2d3dn=(d1,d2,d3, dn)|didi, i=1, 2, n其中每个元素称为一个n元组。例如d1=0,1, d2

22、=a, b, cd1d2=(0,a), (0, b), (0, c), (1, a), (1,b), (1, c)3 关系笛卡尔乘积d1d2d3 dn的任一子集称为d1d2d3 dn上的一个n元关系。例如:r1=(0,a), (0, b), (0, c)和r2=(1, a), (1,b), (1, c)都是d1,d2上的一个关系。7.2关系代数关系代数:施加于关系上的集合代数运算。分为:传统的集合运算和专门的关系运算。7.2.1集合运算:集合的交、并、差等。7.2.2关系运算 1 选择从关系中找出满足给定条件的所有元组。水平方向抽取元组。是原关系的子集。f(r)=t | tr f(t)=tru

23、e例如:b bc cd d2 23 32 25 56 63 39 98 85 5b=5(s)b bc cd d5 56 63 3sb=5b=5(s)(s) 2 投影从关系中选择若干个属性所组成的新关系。对关系进行垂直分解。比原有关系属性少。x(r)=tx tr其中x表示一组属性名。 ra ab bc c1 12 23 34 45 56 67 78 89 9a ac c1 13 34 46 67 79 9a,c(r) 3 连接将两个关系拼接为一个更宽的关系,新关系中包含满足连接条件的元组。f(rs)=tr, ts | trr tss fr(tr)=true fs(ts)=true a ab bc

24、 cb bc cd d1 12 23 32 23 33 34 45 56 65 56 63 3b bc cd d2 23 32 25 56 63 39 98 85 5a ab bc c1 12 23 34 45 56 67 78 89 9rs3=2(rs) 7.3 关系数据库理论 7.3.1数据存储异常关系:s(no,name,department,dean,course, grade)选课关系(学号,姓名,所在系,系主任,课程,成绩)存在以下问题:(1)插入异常:如果一个系刚成立,还没有学生,无法将该系及其负责人的信息存入数据库。(2)删除异常:如果一个系的所有学生都毕业了,在删除所有学生选

25、课记录的时候,该系及其负责人的信息也丢失了。(3)冗余大:多少学生选课,该系及其负责人的信息就要出现多少次。造成存储空间的浪费,容易引起数据的不一致性。 原因:数据之间的依赖。 nonodepartmendepartment tdeandeancoursecoursegradegrade91019101计算机计算机张强张强操作系统操作系统757591019101计算机计算机张强张强数据库数据库787891019101计算机计算机张强张强系统工程系统工程909091019101计算机计算机张强张强编译原理编译原理676791039103数学数学李力量李力量高等数学高等数学878791039103

26、数学数学李力量李力量经济学经济学94947.3.2函数依赖 1 函数依赖定义设r(u)是一个关系模式,x和y是u的两个子集,如果r中的任意两个元组,x上属性值相同时,y上属性值也必然相同,称y函数依赖于x,或x函数决定y。记为xy。nonodepartmendepartment tdeandeancoursecoursegradegrade91019101计算机计算机张强张强操作系统操作系统757591019101计算机计算机张强张强数据库数据库787891019101计算机计算机张强张强系统工程系统工程909091019101计算机计算机张强张强编译原理编译原理676791039103数学数

27、学李力量李力量高等数学高等数学878791039103数学数学李力量李力量经济学经济学9494如果对x的任何真子集x1,x1y不成立, 称y完全函数依赖于x, 记为x1y;否则称y部分函数依赖于x,记为x1y 。fpnonodepartmentdepartmentdeandeancoursecoursegradegrade91019101计算机计算机张强张强操作系统操作系统757591019101计算机计算机张强张强数据库数据库787891019101计算机计算机张强张强系统工程系统工程909091019101计算机计算机张强张强编译原理编译原理676791039103数学数学李力量李力量高等

28、数学高等数学878791039103数学数学李力量李力量经济学经济学94942 传递函数依赖 设r(u)是一个关系模式,x、y和z是u的子集,若xy,yz,且x不函数依赖于y,称z传递函数依赖于x。nonodepartmendepartment tdeandeancoursecoursegradegrade91019101计算机计算机张强张强操作系统操作系统757591019101计算机计算机张强张强数据库数据库787891019101计算机计算机张强张强系统工程系统工程909091019101计算机计算机张强张强编译原理编译原理676791039103数学数学李力量李力量高等数学高等数学87

29、8791039103数学数学李力量李力量经济学经济学94947.3.3 关系的规范化 关系要满足一定的要求,根据满足程度的不同,分为不同的范式(normal form)。1 第一范式1nf满足最低要求的称为1nf。所有属性都是基本数据项。例如: nonodepartmentdepartmentdeandeancoursecoursegradegrade91019101计算机计算机张强张强操作系统操作系统数据库数据库系统工程系统工程编译原理编译原理757578789090676791039103数学数学李力量李力量高等数学高等数学经济学经济学87879494将一个元组拆开为多个元组。 nonod

30、epartmentdepartmentdeandeancoursecoursegradegrade91019101计算机计算机张强张强操作系统操作系统757591019101计算机计算机张强张强数据库数据库787891019101计算机计算机张强张强系统工程系统工程909091019101计算机计算机张强张强编译原理编译原理676791039103数学数学李力量李力量高等数学高等数学878791039103数学数学李力量李力量经济学经济学94941nf存在数据冗余、插入、删除异常现象。 2 第二范式2nf 如果r是1nf,并且每个非主属性都完全函数依赖于关键字,则r是2nf。因为:(no, c

31、ourse)是关键字。(no, course)部分决定dean和department。拆分为n_c(no,course,grade)和n_d (no,department, dean)在n_c中,(no, course)是主关键字。(no, course)完全决定grade。n_cnocoursegrade9101操作系统759101数据库789101系统工程909101编译原理679103高等数学879103经济学94在n_d中,no是主关键字,no完全决定department 和dean。n_d:nonodepartmentdepartmentdeandean91019101计算机计算机张

32、强张强91039103数学数学李力量李力量3 第三范式3nf 如果r是2nf,并且每个非主属性都不传递函数依赖于关键字,则r是3nf。n_c (no,course,grade)是3nf,但n_d (no,department, dean)不是3nf,因为department函数依赖于no, dean函数依赖于department,所以dean传递函数依赖于no。将n_d(no,department, dean)拆分为n_d_1(no,department)和d_d(department, dean)departmentdean计算机张强数学李力量nodepartment9101计算机9103数学n_d1d_d4 其他范式 bcnf、4nf和5nf。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论