福建专升本SQL重点.docx
- 文档编号:3573575
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:40
- 大小:85.26KB
福建专升本SQL重点.docx
《福建专升本SQL重点.docx》由会员分享,可在线阅读,更多相关《福建专升本SQL重点.docx(40页珍藏版)》请在冰豆网上搜索。
福建专升本SQL重点
第一讲数据库系统概论
1.1数据库系统概论
1.1.1区分数据、数据库、数据库管理系统、数据库系统
(1)数据(Data):
数据库中存储的基本对象。
数据的解释是指对数据含义的说明。
数据的含义称为数据的语义。
(2)数据库(DataBase,DB):
长期存储在在计算机内的、有组织、可共享的数据集合。
(3)数据库管理系统(DataBaseManagementSystem,DBMS):
数据库管理系统是位于用户与操作系统之间的一层数据管理软件。
A、数据定义功能(DataDefinitionLanguage,DDL)。
CreateAlterDrop
B、数据操纵功能(DataManipulationLanguage,DML)。
SelectInsertUpdateDelete
C、数据库的运行管理:
统一管理,统一控制,以保证数据的安全性、完整性、多用户对沪剧的并发使用以及故障恢复。
D、数据库的建立和维护功能:
数据传输、转换功能、转存恢复功能。
性能监视、分析。
(4)数据库系统(DataBaseSystem,DBS):
在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统及开发工具、应用系统、数据管理员和用户构成。
一般把数据库系统简称为数据库。
数据库系统数据库系统在计算机系统中的地位
1.1.2数据管理技术的产生和发展
(1)人工管理阶段(20世纪50年代中期以前)
背景:
计算机主要用于科学计算(数据量小、结构简单,如高阶方程、曲线拟和等)。
外存只有磁带、卡片、纸带等,没有磁盘等直接存取设备。
没有操作系统,没有数据管理软件(用户用机器指令编码)。
特点:
用户负责数据的组织、存储结构、存取方法、输入输出等细节。
数据完全面向特定的应用程序,每个用户使用自己的数据,数据不保存,用完就撤走。
数据与程序没有独立性,程序中存取数据的子程序随着存储结构的改变而改变。
(2)文件系统阶段(50年代后期---60年代中期)
背景:
计算机不但用于科学计算,还用于管理。
外存有了磁盘、磁鼓等直接存取设备。
有了专门管理数据的软件,一般称为文件系统,包括在操作系统中。
特点:
系统提供存取方法(索引文件、链接文件、直接存取文件、倒排文件等),支持对文件的基本操作(增、删、改、查等),用户程序不必考虑物理细节。
数据的存取基本上以记录为单位。
一个数据文件对应一个或几个用户程序,还是面向应用的。
数据与程序有一定的独立性,因为文件的逻辑结构与存储结构由系统进行转换,数据在存储上的改变不一定反映在程序上。
存在问题:
数据与程序的独立性差:
文件系统的出现并没有从根本上改变数据与程序紧密结合的状况。
文件系统只是解脱了程序员对物理设备存取的负担,它并不理解数据的语义,只负责存储。
数据的语义信息只能由程序来解释,也就是说,数据收集以后怎么组织,以及数据取出来之后按什么含义应用,只有全权管理它的程序知道。
数据的逻辑结构改变则必须修改应用程序。
一个应用若想共享另一个应用生成的数据,必须同另一个应用沟通,了解数据的语义与组织方式。
数据的冗余度大:
数据仍然是面向应用的。
当不同应用程序所需要的数据有部分相同时,也必须建立各自的文件,而不能共享相同的数据。
数据分散管理。
数据的不一致性:
由于数据存在很多副本,给数据的修改与维护带来了困难,容易造成数据的不一致性。
(3)数据库系统阶段(60年代后期开始)
背景:
计算机管理的数据量大,关系复杂,共享性要求强(多种应用、不同语言共享数据)外存有了大容量磁盘,光盘。
软件价格上升,硬件价格下降,编制和维护软件及应用程序成本相对增加,其中维护的成本更高,力求降低。
特点:
有了数据库管理系统。
面向全组织,面向现实世界。
独立性较强。
由DBMS统一存取,维护数据语义及结构
数据库观点:
数据不是依赖于处理过程的附属品,而是现实世界中独立存在的对象。
1.1.3数据库系统VS文件系统
文件系统的弱点:
文件之间无联系,难于维护数据的完整性。
数据库系统的用武之地:
有查询,数据复杂
效率两面观:
运行效率,开发效率
1.1.4数据库系统的特点(与文件系统比较)
(1)面向全组织的复杂的数据结构:
支持全企业的应用而不是某一个应用。
数据反映了客观事物间的本质联系,而不是着眼于面向某个应用,是有结构的数据。
这是数据库系统的主要特征之一,与文件系统的根本差别。
文件系统只是记录的内部有结构,一个文件的记录之间是个线性序列,记录之间无联系。
(2)数据的冗余度小,易扩充:
数据面向整个系统,而不是面向某一应用,数据集中管理,数据共享,因此冗余度小。
节省存储空间,减少存取时间,且可避免数据之间的不相容性和不一致性。
每个应用选用数据库的一个子集,只要重新选取不同子集或者加上一小部分数据,就可以满足新的应用要求,这就是易扩充性。
(3)具有较高的数据和程序的独立性:
数据与程序相对独立,把数据库的定义和描述从应用程序中分离出去。
描述又是分级的(全局逻辑、局部逻辑、存储),数据的存取由系统管理,用户不必考虑存取路径等细节,从而简化了应用程序。
A、数据独立性:
当数据的结构发生变化时,通过系统提供的映象(转换)功能,使应用程序不必改变。
B、数据的物理独立性:
当数据的存储结构改变时,通过数据的存储结构与逻辑结构之间的映象,数据的逻辑结构可以保持不变,从而应用程序也不必改变。
C、数据的逻辑独立性:
当数据的总体逻辑结构改变时,通过数据的总体逻辑结构与局部逻辑结构之间的映象,数据的局部逻辑结构可以保持不变,从而应用程序也不必改变。
数据独立性是由DBMS的二级映象功能来保证的。
(4)统一的数据控制功能,数据共享程度高
A、数据的安全性控制(Security):
保护数据以防止不合法的使用所造成的数据泄露和破坏。
措施:
用户标识与鉴定,存取控制。
B、数据的完整性控制(Integrity):
数据的正确性、有效性、相容性。
措施:
完整性约束条件定义和检查。
C、并发控制(Concurrency):
对多用户的并发操作加以控制、协调,防止其互相干扰而得到错误的结果并使数据库完整性遭到破坏。
措施:
封锁。
D、数据库恢复技术。
1.2数据模型与数据抽象
数据模型是一种模型,是现实世界数据特征的抽象。
1.2.1数据模型定义
数据模型就是现实世界的模拟。
1.2.2数据模型
数据模型:
是数据库系统中用于提供信息表示和操作手段的形式构架。
1.2.3数据模型的三要素
(1)数据结构:
描述系统的静态特性,即组成数据库的对象类型。
包括:
数据本身:
类型、内容、性质。
如网状模型中的数据项、记录,关系模型中的域、属性,关系等。
数据之间的联系:
例如网状模型中的系型(SetType)
在数据库系统中一般按数据结构的类型来命名数据模型,如:
“层次结构、网状结构、关系结构。
(2)数据操纵:
描述系统的动态特性,即对数据库中对象的实例允许执行的操作的集合,包括操作及操作规则。
一般有检索、更新、插入、删除操作。
数据模型要定义操作含义、操作符号、操作规则,以及实现操作的语言。
(3)完整性约束:
数据的约束条件是完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确、有效、相容。
1.2.4数据抽象
信息世界:
数据库系统是面向计算机的,而应用是面向现实世界的,两个世界存在着很大差异,要直接将现实世界中的语义映射到计算机世界是十分困难的,因此引入一个信息世界作为现实世界通向计算机实现的桥梁。
一方面,信息世界是对现实世界的抽象,从纷繁的现实世界中抽取出能反映现实本质的概念和基本关系;另一方面,信息世界中的概念和关系,要以一定的方式映射到计算机世界中去,在计算机系统上最终实现。
信息世界起到了承上启下的作用。
模型分为两大类:
1类是概念模型,2是数据模型。
1.2.5数据库系统模式
模式:
是数据库中全体数据的逻辑结构和特征的描述,仅仅涉及到“型“,不涉及到具体的值,是相对稳定的。
型与值的区别:
型是指对某一类数据的结构和属性的说明,值是型的一个具体的赋值。
元数据(meta-data)/数据字典:
描述数据的数据。
例:
身份证,文献索引。
1.3概念模型
1.3.1概念模型
概念数据模型:
按用户的观点来对数据和信息建模。
用于组织信息世界的概念,表现从现实世界中抽象出来的事物以及它们之间的联系。
这类模型强调其语义表达能力,概念简单、清晰,易于用户理解。
它是现实世界到信息世界的抽象,是用户与数据库设计人员之间进行交流的语言。
如E-R模型。
(1)实体(entity):
客观存在并且可以相互区别的事物。
(2)属性(attribute):
实体所具有的某一特性。
(3)(主)码(key):
唯一标识实体的属性集。
PrimaryKey(PK)
(4)域(Domain):
属性的取值范围称为该属性的域。
(5)实体型(entrytype):
用实体名及其属性名集合来抽象和刻画同类实体。
例:
学生(学号,姓名,性别,出生日期)
(6)实体集(entryset):
同型实体的集合称为实体集。
例:
全体学生。
(7)联系(Relationship):
组成实体的各属性之间的联系。
(8)元组:
表中的一行。
(9)分量:
元组中的某一个属性值。
(10)外码:
参考到其他表的属性列。
对应关系:
1:
11:
NN:
M
1.3.2概念模型表示方法
实体型:
用矩型表示,矩型内写名实体名。
属性:
用椭圆表示,并用无向边将其与相应的实体连接起来。
联系:
用菱型表示,菱形内写明联系名。
如果一个联系也具有属性,则这些属性也要用无向边联系。
1.4数据模型
1.4.1常用数据模型
(1)层次模型:
用树结构表示实体之间联系的模型叫层次模型。
树由节点和连线组成,节点代表实体型,连线表示两实体型间的一对多联系。
树有以下特性:
有且仅有一个节点,无父节点,此节点称为树的根(Root)。
树中的其它节点都有且仅有一个父节点。
父节点,子节点,根节点
优点:
结构简单,易于实现。
缺点:
支持的联系种类太少,只支持二元一对多联系。
数据操纵不方便,子结点的存取只能通过父结点来进行。
代表产品:
IBM的IMS数据库,1969年研制成功。
(2)网状模型
是一个满足下列条件的有向图:
可以有一个以上的节点无父节点。
至少有一个节点有多于一个的父节点(排除树结构)。
特点:
表达的联系种类丰富。
结构复杂。
(3)关系模型
用二维表来表示实体及其相互联系
优点:
简单,表的概念直观,用户易理解。
非过程化的数据请求,数据请求可以不指明路径。
数据独立性,用户只需提出“做什么”,无须说明“怎么做”。
坚实的理论基础。
1.4数据库系统结构
1.4.1数据库系统的三级模式结构
模式的分级:
为了提高数据的物理独立性和逻辑独立性,使数据库的用户观点,即用户看到的数据库,与数据库的物理方面,即实际存储的数据库区分开来,数据库系统的模式是分级的。
数据库系统三级模式结构:
CODASYL(ConferenceOnDataSystemLanguage,美国数据系统语言协商会)提出外模式(用户模式,子模式)、模式(概念模式)、内模式(存储模式)三级模式的概念。
三级模式之间有两级映象。
模式(Schema):
也称逻辑模式。
所有用户的公共数据视图。
是数据库中全体数据的全局逻辑结构和特性的描述。
不涉及具体的物理存储细节和硬件环境,也与具体的应用程序无关。
一个数据库只有一个模式。
外模式(Sub-Schema)(用户模式,子模式):
用户的数据视图。
是数据的局部逻辑结构,模式的子集,有力的控制安全性。
内模式(StorageSchema):
又称存储模式。
数据的物理结构及存储方式。
(举例)
1.4.2数据库二级映象功能
外模式/模式映象:
定义某一个外模式和模式之间的对应关系,映象定义通常包含在各外模式中。
当模式改变时,修改此映象,使外模式保持不变,从而应用程序可以保持不变,称为逻辑独立性。
模式/内模式映象:
定义数据逻辑结构与存储结构之间的对应关系。
存储结构改变时,修改此映象,使模式保持不变,从而应用程序可以保持不变,称为物理独立性。
1.4.3ANSI/X3/SPARC(75,78)提出SPARC报告,其ANSI模型分为外部级、概念级、内部级。
1.5数据库系统的构成
1.5.1几个相关概念
数据库:
数据的集合。
由DBMS统一管理,多用户共享。
数据库管理系统DBMS:
系统软件,对数据库进行统一管理和控制。
数据库系统:
带有数据库的整个计算机系统,包括硬件、软件、数据、人员。
1.5.2数据库系统的软硬件层次
1.5.3数据库系统的主要成分
硬件:
内存大,放得下OS,DBMS核心,系统缓冲区,用户工作区等;大容量、直接存取的外存设备;作数据备份的磁带。
软件:
OS,DBMS,高级语言编译系统及其与数据库的接口,应用开发工具,应用系统。
数据:
包括目标数据(数据本身)及描述数据(对数据的说明信息)。
用户:
最终用户:
通过应用系统的用户接口(菜单等)使用数据库。
应用程序员:
基于外模式来编写应用程序。
系统分析员:
负责应用系统的需求分析和规范定义,确定系统的软硬件配置,参与数据库模式设计。
数据库管理员DBA:
负责数据库的全面管理和控制。
1.5.4DBA的重要性:
重要资源,维护整个组织的信息资源。
共享资源,多用户共享,需要统一管理、协调、监控。
1.5.5DBA职责
建库方面:
确定模式、外模式、存储结构、存取策略、负责数据的整理和装入。
用库方面:
定义完整性约束条件,规定数据的保密级别、用户权限,监督和控制数据库的运行情况,制定后援和恢复策略,负责故障恢复。
改进方面:
(1)监督分析系统的性能(空间利用率,处理效率);
(2)数据库重组织,物理上重组织,以提高性能;(3)数据库重构造,设计上较大改动,模式和内模式修改。
1.5.5DBMS的层次结构
1.5.6DBMS的主要功能
(1)数据库定义功能:
提供DDL语言(DataDescriptionLanguage)描述外模式、模式、内模式(源模式)。
模式翻译程序把源模式翻译成目标模式,存入数据字典中。
(2)数据存取功能:
提供DML语言(Datamanipulationlanguage)对数据库进行检索、插入、修改、删除。
DML类型:
a、宿主型:
DML不独立使用,嵌入到高级语言(主语言)程序中使用。
B、自含型:
独立使用,交互式命令方式。
DBMS控制并执行DML语句:
a、宿主型:
有预编译和增强编译两种方式。
B、自含型:
解释执行。
(3)数据库运行管理:
并发控制、存取控制、完整性约束条件检查和执行,日志组织和管理,事务管理和自动恢复。
(4)数据组织、存储和管理:
用户数据、索引、数据字典的组织、存储和管理,包括文件结构、存取方式、数据之间的联系的实现等。
(5)数据库的建立和维护功能:
数据的装入、转换、卸出,数据库的转储、恢复、性能监视和分析等。
1.6数据库新方向
1.6.1新的数据库管理系统
(1)面向对象数据库
(2)对象-关系数据库
(3)并行数据库
(4)分布式数据库
1.6.2新的数据库应用
(1)数据仓库
(2)数据挖掘
(3)OLAP
第二章实体-联系模型(概念数据库设计)
2.1数据库设计过程2.2基本概念
2.2.11976年,P.P.S.Chen提出E-R模型(Entity-RelationshipModel),用E-R图来描述概念模型。
观点:
世界是由一组称作实体的基本对象和这些对象之间的联系构成的。
2.2.2基本概念
(1)实体(Entity):
客观存在并可相互区分的事物叫实体。
如学生张三、工人李四、计算机系、数据库概论。
(2)属性(Attribute):
实体所具有的某一特性。
一个实体可以由若干个属性来刻画。
例如,学生可由学号、姓名、年龄、系、年级等组成。
(4)域(Domain):
属性的取值范围。
例如,性别的域为(男、女),月份的域为1到12的整数。
(5)实体型(EntityType):
实体名与其属性名集合共同构成实体型。
例,学生(学号、姓名、年龄、性别、系、年级)。
注意实体型与实体(值)之间的区别,后者是前者的一个特例。
如学生(9808100,王平,21,男,计算机系,2)是一个实体。
(6)实体集(EntitySet):
同型实体的集合称为实体集。
如全体学生。
联系(Relationship):
实体之间的相互关联。
如学生与老师间的授课关系,学生与学生间有班长关系。
联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。
同类联系的集合称为联系集。
(7)元或度(Degree):
参与联系的实体集的个数称为联系的元。
如学生选修课程是二元联系,供应商向工程供应零件则是三元联系。
(8)码(Key):
A、候选码:
关系中的某一属性或属性组的值能唯一地标识一个元组,称该属性或属性组为候选码。
B、主码(PrimaryKey):
一个关系有多个候选码,从中选定一个用来区别同一实体集中的不同实体,称作主码。
一个实体集中任意两个实体在主码上的取值不能相同。
如学号是学生实体的码。
通讯录(姓名,邮编,地址,电话,Email,BP)
C、外码:
D、全码:
关系模型中所有属性组是这个关系模式的候选码,称为全码。
(9)参与(Participation):
实体集之间的关联称为参与,即实体参与联系。
如王军选修“数据库基础”,表示实体“王军”与“数据库基础”参与了联系“选修”。
如果实体集E中的每个实体都参与到联系集R中的至少一个联系,则称E全部参与R。
如果实体集E中只有部分实体参与到联系集R的联系中,则称E部分参与R。
如“职工”与“部门”之间的“管理”联系,“职工”实体集部分参与,而“部门”实体集完全参与。
(10)角色(Role):
实体在联系中的作用称为实体的角色。
当同一个实体集不止一次参与一个联系集时,为区别各实体的参与联系的方式,需要显式指明其角色。
如学生与班长关系,职工与职工之间的经理关系,课程之间的先修关系。
2.2.3属性类型
(1)简单属性:
不可再分的属性。
如学号、年龄、性别。
(2)复合(Composite)属性:
可以划分为更小的属性。
可以把相关属性聚集起来,使模型更清晰。
如电话号码=区号+本地号码
(3)单值属性:
每一个特定的实体在该属性上的取值唯一。
如学生的学号,年龄、性别、系别等。
(4)多值属性:
某个特定的实体在该属性上的有多于一个的取值。
如学生(学号,所选课程,联系电话),的“所选课程”,“联系电话”。
(5)NULL属性:
Null表示“无意义”,当实体在某个属性上没有值时设为Null。
如通讯录(姓名,email,电话,BP),若某人没有email地址,则在email属性上取值为null。
null表示“值未知”,即值存在,但目前没有获得该信息。
如职工(姓名,部门,工种,身份证),如果目前不知道职工身份证号码,则设身份证值为null。
实体完整性:
作为主码的属性上取值不能为null。
(6)派生(Derived)属性与基属性:
可以从其他相关的属性或实体派生出来的属性值。
如学生(学号,姓名,平均成绩),选课(学号,课程号,成绩),则平均成绩可由学生所选课程的总成绩除以课程总数来得到。
称平均成绩为派生属性,而成绩为基属性,或存储属性。
数据库中,一般只存基属性值,而派生属性只存其定义或依赖关系,用到时再从基属性中计算出来。
基本表VS视图
多值属性用双椭圆表示,或用双线与实体相连。
派生属性用虚椭圆表示,或用虚线与实体相连
2.3映射约束
2.3.1映射的基数(MappingCardinalities):
实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目。
可以有一对一的(1:
1),一对多的(1:
m),多对多的(m:
n)几种情况。
在E-R图中,用箭头或线段来表示联系的映射基数。
(1)二元联系集的映射基数:
一对一、一对多、多对多
(2)一个实体集内的二元联系:
一对一、一对多、多对多
(3)多个实体集间联系的情况
2.3.2存在依赖(ExistenceDependency)
如果实体x的存在依赖于实体y的存在,则称x存在依赖于y。
y称作支配实体,x称作从属实体。
如果y被删除,则x也要被删除。
考虑员工亲属的例子
2.3.3弱实体集(WeakEntitySet)
如果一个实体集的所有属性都不足以形成主码,则称这样的实体集为弱实体集。
弱实体集与其拥有者之间的联系称作标识性联系(identifyingrelationship)。
弱实体集与强实体集之间是一对多的联系。
弱实体集必然存在依赖于强实体集(StrongEntitySet)。
存在依赖并不总会导致一个弱实体集,从属实体集可以有自己的主码。
如实体集信用卡(信用卡号,客户帐号,金额),它存在依赖于客户帐号实体集,但信用卡有自己的主码信用卡号。
2.3.4为什么使用弱实体集
通过为弱实体集加上合适的属性,可转变为强实体集,为什么还要使用弱实体集?
(1)避免数据冗余(强实体集码重复),以及因此带来的数据的不一致性。
(2)弱实体集反映了一个实体对其它实体依赖的逻辑结构。
(3)弱实体集可以随它们的强实体集的删除而自动删除。
(4)弱实体集可以物理地随它们的强实体集存储。
2.3.5复合实体
复合实体的主码一般由两个(或两个以上)属性构成。
2.3.6实体的超类与子类
举例:
飞行员工与普通员工
2.4数据抽象与E-R模型设计步骤
(1)数据抽象
(2)设计局部E-R模型
(3)设计全局E-R模型
A、合并局部E-R图,生成初步E-R图:
可能发生的问题,属性冲突,名称冲突,结构冲突。
属性冲突:
1、分为属性值域冲突,既属性值的类型,取值范围,或取值集合不同;2、属性的取值冲突,例如:
重量:
公斤,斤。
名称冲突:
同名异义,异名同义。
结构冲突:
1、同一对象在不同的应用中有不同的抽象,例如:
教师的职称可能是一个实体也可能是一个属性。
2、同一实体在不同应用中属性组成不同,可能是属性个数或属性次序不同。
3、同一联系在不同应用中呈现不同的类型。
B、消除冗余生成E-R图
2.5将E-R模型转换成数据库一般规则
(1)将每一个实体转换成一个关系。
(2)所有主码必须定义非空。
(3)对于二元联系,按照规则定义外码。
A、一对多:
将“一”表中的主码作为外码放在“多”表中,外码总是在“多”的一方。
B、弱实体:
将父表的主码作为外码放在弱实体中。
弱实体的主码由父表的主码与弱实体本身的候选码组成。
也可以为弱实体建立新的独立的标识符ID。
C、一对一:
将一个表的主码作为外码放在另一个表中,外码通常是放在操作比较频繁的表中。
也可以将两个实体合并成一个实体。
D、多对多:
建立复合实体,复合实体的主码由两个父实体的主码复合组成。
复合实体的主码也是外码。
第三讲关系模型(逻辑结构设计)
关系理论是建立在集合代数理论基础上的,有着坚实的数学基础。
E.F.Codd于70年代初提出关系数据理论,他因此获得1981年的ACM图灵奖。
早期代表系统:
SystemR:
由IBM研制。
INGRES由加州Berkeley分校研制。
目前主流的商业数据库系统:
Oracle,Informix,Sybase,SQLServer,DB2,
Access,Foxpro,Foxbase。
3.1关系基本概念
关系理论是以集合代数为基础的。
3.1.1域
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 福建 SQL 重点