【教学课件】第6章数据库系统基础.ppt

上传人:小飞机 文档编号:4879253 上传时间:2023-05-21 格式:PPT 页数:96 大小:410KB
返回 下载 相关 举报
【教学课件】第6章数据库系统基础.ppt_第1页
第1页 / 共96页
【教学课件】第6章数据库系统基础.ppt_第2页
第2页 / 共96页
【教学课件】第6章数据库系统基础.ppt_第3页
第3页 / 共96页
【教学课件】第6章数据库系统基础.ppt_第4页
第4页 / 共96页
【教学课件】第6章数据库系统基础.ppt_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《【教学课件】第6章数据库系统基础.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第6章数据库系统基础.ppt(96页珍藏版)》请在三一办公上搜索。

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、关系模型,用关系(表)来描述实体及实体之间的联系。关系:表元组:表中的一行属性:表的一列主码:唯一确定元组的属性或属性组。关系的描述方式:关系名(属性1,属性2,属性n)学生(学号、姓名、性

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

9、学号,姓名,年龄)课程(课程号,课程名)选课(学号,课程号,成绩),外模式,也称为子模式或用户模式,是用户看到和使用的局部数据的逻辑结构和特征描述,是用户视图,与具体应用有关的数据的逻辑描述。学习(学号,姓名,课程号,成绩),内模式,存储模式,是数据的物理结构和存储方式的描述,是数据的内部表示方式。如是否有索引、聚集,存放在哪个盘等。,2、二级映射,外模式/模式:提供逻辑独立性。模式/内模式映射:提供物理独立性。,980001,用户数据库,概念数据库,物理数据库,奖学金发放,学籍管理,应用程序,模式内模式映射,外模式模式映射,数据在数据文件中以链表方式存储,二级映射示意图,6.3 SQL基础,

10、SQL(Structured Query Language)一、建立表CREATE TABLE table_name(column_name data-type consraint,),一、建立表,CREATE TABLE employee(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)

11、,country VARCHAR(10)NULL),二、插入记录,INSERT INTO 表名 列名表)VALUES(值表)INSERT INTO employee(eid,name,age,country)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 employeeSE

12、T name=Li MingWHERE eid=4025,三、修改记录,UPDATE employeeSET name=Zhang Li,age=36,country=USAWHERE 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

13、publishersSELECT*FROM publishers,2、删除重复的行DISTICT,SELECT city,stateFROM authersSELECT DISTICT city,stateFROM authers,3、计算表达式,SELECT title_id,type,price,price_price*0.3FROM titleSELECT au_lname+.+au_fname,city+.+stateFROM authors,4、筛选条件,(1)条件:=!=price45.3country=China NOT AND OR Country=China AND age3

14、5,(2)举例,SELECT title_id,type,price,price-price*0.3 FROM titlesWHERE price-price*0.318SELECT pub_id,pub_nameFROM publishersWHERE country=USA AND state=CA,5、LIKE,列名 NOT LIKE 模式%:任意字符串,_:任意一个字符SELECT au_lname+.+au_fname,city+.+stateFROM authorsWHERE au_fname LIKE D%,SELECT au_lname+.+au_fname,city+.+st

15、ateFROM authorsWHERE au_id LIKE 72_-%,5、LIKE,6、结果排序,ORDER BY 字段表通常返回的结果是随机排列的。SELECT stor_name,cityFROM storesORDER BY store_name,SELECT stor_name,cityFROM storesORDER BY store_name DESCSELECT stor_name,cityFROM storesORDER BY store_name ASC,6、结果排序,SELECT stor_name,cityFROM storesORDER BY stor_name,

16、city 用多个列排列。SELECT stor_name,cityFROM storesORDER BY state用不出现的列。,SUM(expression)AVG(expression)MIN(expression)MAX(expression)COUNT(expression)COUNT(*),7、统计函数,SELECT AVG(price)FROM titlesSELECT MAX(price)FROM titlesWHERE type=business,7、统计函数,SELECT AVG(qty),SUM(qty),COUNT(DISTICT stor_id)FROM salesS

17、ELECT COUNT(*)FROM publishersWHERE state=CA,7、统计函数,8、结果分组,(1)GROUP BY 分组列名表SELECT type,AVG(price),SUM(price),COUNT(*)FROM titlesWHERE type in(business,mod_cook,trad_cook)GROUP BY type,SELECT type,pub_id,AVG(price),SUM(price),COUNT(*)FROM titlesWHERE type in(business,mod_cook,trad_cook)GROUP BY type,

18、pub_idGO,GROUP BY 分组列名表HAVING 条件对GROUP的分组结果再进一步筛选。SELECT type,AVG(price),SUM(price),COUNT(*)FROM titlesWHERE price$10GROUP BY type,(2)使用HAVING,SELECT type,AVG(price),SUM(price),COUNT(*)FROM titlesWHERE price$10GROUP BY typeHAVING AVG(price)$20,(2)使用HAVING,9、多表查询,(1)笛卡尔乘积SELECT title_id,au_fnameFROM

19、titles,authorsSELECT 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 taSELECT 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,a.au_id FROM ti

20、tles 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=a,b,cD1D2=(0,a),(0,b),

21、(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)=True例如:,B=5(S),S,B=5(S),2 投影,从关系中选择若干个属性所组

22、成的新关系。对关系进行垂直分解。比原有关系属性少。X(R)=tX tR其中X表示一组属性名。,R,A,C(R),3 连接,将两个关系拼接为一个更宽的关系,新关系中包含满足连接条件的元组。F(RS)=tR,tS|tRR tSS FR(tR)=True FS(tS)=True,R,S,3=2(RS),7.3 关系数据库理论,7.3.1数据存储异常关系:S(no,name,department,dean,course,grade)选课关系(学号,姓名,所在系,系主任,课程,成绩)存在以下问题:(1)插入异常:如果一个系刚成立,还没有学生,无法将该系及其负责人的信息存入数据库。,(2)删除异常:如果一

23、个系的所有学生都毕业了,在删除所有学生选课记录的时候,该系及其负责人的信息也丢失了。(3)冗余大:多少学生选课,该系及其负责人的信息就要出现多少次。造成存储空间的浪费,容易引起数据的不一致性。原因:数据之间的依赖。,7.3.2函数依赖,1 函数依赖定义设R(U)是一个关系模式,X和Y是U的两个子集,如果R中的任意两个元组,X上属性值相同时,Y上属性值也必然相同,称Y函数依赖于X,或X函数决定Y。记为XY。,如果对X的任何真子集X1,X1Y不成立,称Y完全函数依赖于X,记为X1Y;否则称Y部分函数依赖于X,记为X1Y。,f,p,2 传递函数依赖,设R(U)是一个关系模式,X、Y和Z是U的子集,若

24、XY,YZ,且X不函数依赖于Y,称Z传递函数依赖于X。,7.3.3 关系的规范化,关系要满足一定的要求,根据满足程度的不同,分为不同的范式(Normal Form)。1 第一范式1NF满足最低要求的称为1NF。所有属性都是基本数据项。例如:,将一个元组拆开为多个元组。,1NF存在数据冗余、插入、删除异常现象。,2 第二范式2NF,如果R是1NF,并且每个非主属性都完全函数依赖于关键字,则R是2NF。因为:(no,course)是关键字。(no,course)部分决定dean和department。拆分为N_C(no,course,grade)和N_D(no,department,dean),在

25、N_C中,(no,course)是主关键字。(no,course)完全决定grade。N_C,在N_D中,no是主关键字,no完全决定department 和dean。N_D:,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(de

26、partment,dean),N_D1,D_D,4 其他范式,BCNF、4NF和5NF。关系:5NF属于4NF,4NF属于BCNF,BCNF属于3NF,3NF属于2NF,2NF属于1NF。一般到达3NF就可以了。,7.4 数据库安全性,用户权限,7.5 数据库的完整性,1 数据完整性基础数据完整性:正确性和有效性。,2 分类,实体完整性:每个实体有一个唯一的标识符,通过主键实现。域完整性列的取值范围,通过数据类型实现。引用完整性:通过外键实现。用户定义的完整性:体现业务规则,如陕西的车号以“陕A”开始。,3实现途径,(1)PRIMARY KEYCREATE TABLE 表名(列名 数据类型 C

27、ONSTRAIN 约束名 PRIMARY KEY CLUSTERED|NOCLUSTERED,),CREATE TABLE student(no INT PRIMARY KEY CLUSTERED,name CHAR(10),age INT),(2)CHECK,建立CHECK约束CREATE TABLE 表名(列名 数据类型 CONSTRAIN 约束名 CHECK(条件),),USE teacherCREATE TABLE student4(no INT,name CHAR(10),age INT CHECK(age30),(3)FOREIGN KEY,1 FOREIGN KEY,studen

28、t,teacher,(2)建立FOREIGN KEY约束,CREATE TABLE 表名(列名 数据类型 CONSTRAIN 约束名 FOREIGN KEY REFERENCES 表名(列名),),CREATE TABLE teacher(t_no CHAR(4)PRIMARY KEY,t_name VARCHAR(120),course VARCHAR(20),CREATE TABLE students(s_no INT,s_name CHAR(20),age INT,birth_place VARCHAR(20),supervisor CHAR(4)FOREIGN KEY REFERENCES teacher(t_no),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号