数据库原理与应用
文章平均质量分 74
Watermelon_Mr
这个作者很懒,什么都没留下…
展开
-
数据库的概念-数据库、数据库管理系统、数据库系统、数据库管理员、数据库设计人员、开发管理使用数据库系统的人员
并进行应用程序调试和安装、编写文档并维护程序;终端用户是通过应用系统的用户接口使用数据库的普通用户,例如银行的出纳员、车站的售票员、旅馆的前台服务员,目前大量通过手机APP进行各类应用的手机用户等,占数据库系统用户的绝大多数,终端用户主要操纵基于表单的或者基于菜单的等图形用户界面(GUI)提供的固化事务不断的查询和更新数据库。在文件系统中,尽管每个文件内部是有结构的,但文件之间是没有联系的,数据文件只存储数据,比如有关联的学生、课程以及学生选课信息分别存储在不同的文件中,而若在数据库中,采用主流的。原创 2024-06-23 18:25:00 · 693 阅读 · 0 评论 -
数据库系统概论、数据管理的三种方式
来管理和访问数据库中的数据,数据库管理系统作为数据库系统的核心,大多遵循三级体系结构,为用户提供数据在不同层次上的抽象视图,在数据库管理系统中,采用三级模式结构,来描述三个级别的数据抽象,并在三级模式之间提供了。,这个时期有了磁盘、磁鼓等直接存取设备,计算机所能处理数据的量和速度得到了提高,不仅能进行批处理,还能进行联机实时处理,开始出现了操作系统和高级语言,如DOS操作系统和BASIC语言,对数据的管理由。20世纪60年代后期,计算机管理的数据对象的规模越来越大,应用范围也越来越广泛,数据量急剧膨胀,原创 2024-06-23 11:00:30 · 1286 阅读 · 0 评论 -
对数据对象的理解
例如,一个人或一部车可以被认是数据对象,在某种意义上他们可以用一组属性来定义,数据对象描述包括了数据对象及其所有属性,数据对象只封装数据。,简称为对象,它是使用编程语言允许的字符命名,FORTRAN语言处理的数据对象都有类型,显示或隐式地规定数据值和属性。在应用程序中引用的任何数据结构元素,如文件、数据、变量等都称为数据对象。子对象是某些有名对象的一部分,可由其它部分引用或独立地定义。一、数据对象必须是由软件理解的复合信息来表示。数据对象可能是外部实体、地点或结构等。原创 2024-06-23 10:22:50 · 90 阅读 · 0 评论 -
数据库设计概述-数据库设计内容、数据库设计方法(基于E-R模型的规范设计方法)
对逻辑结构设计的结果,还要针对选定的DBMS,利用数据库定义语言描述数据库的模式结构,确定适合应用环境的存储结构和存取方法,即进行数据库物理结构设计。(1)缺乏科学理论和工程方法的支持,很难保证设计的质量 ,数据库常常在投入使用之后才发现存在问题,不得不进行修改,增加了系统维护的代价。7、数据库设计同时伴随着应用系统软件的设计,在设计过程中需要把两者加以结合、相互完善。是无结构的,需要对其进行综合、归纳和抽象,转换为有结构的、易于理解的。在进行关系数据库的逻辑结构设计时,采用基于3NF的数据库设计方法,原创 2024-06-22 18:57:34 · 568 阅读 · 0 评论 -
综合例题-求最小函数依赖集、确定候选键、判断最高满足的范式、模式分解
2、数据库设计是极其复杂的工作,数据库设计人员应熟悉规范化理论,但实际的数据库设计工作,并不一定运用这一过程实现。数据冗余、更新异常和数据不一致问题。Armstrong公理的推理规则。计算属性集闭包和函数依赖集闭包。4、在最小函数依赖集的基础上,分解算法来实现关系模式的规范化。与给定的函数依赖集等价的。确定候选键、判断范式级别。不好的关系模式存在的。原创 2024-06-22 13:22:34 · 153 阅读 · 0 评论 -
模式分解算法-满足3NF的无损且保持函数依赖的分解算法、满足BCNF的无损连接分解算法
1、对指定的关系模式,若范式级别较低,为第一范式或第二范式,由于存在数据冗余或更新异常问题,在实际中一般是不可用的,(1)可以保证分解既具有无损连接性又保持函数依赖,但不能保证分解后的各关系模式属于BC范式,但可以都属于3NF。(2)可以保证分解后的各关系模式都属于BC范式,但只能保证分解再具有无损连接性,不能保证分解保持函数依赖。中包含了R中的候选键,可用判断一个分解是否为无损连接分解的算法来验证分解。中,包含了R的一个候选键HS,利用判断一个分解是否是无损连接分解的算。原创 2024-06-22 10:38:20 · 257 阅读 · 0 评论 -
模式分解的概念(下)-无损连接分解的与保持函数依赖分解的定义和判断、损失分解
1、模式分解的两个特性涉及到了两个数据库模式的等价问题,这种等价包括数据等价和语义等价两个方面,若Y属性列上的值不相同,则将Y属性列上的符号值改为一致。(3)一次扫描后,判断表格中的符号值是否发生改变,如果发生改变,则执行(2),否则算法结。的函数依赖,检查X属性列上值相同的行,其所对应的Y属性列上的值是否相。束,特殊的,当表格中的出现某一行的符号值全为a值时算法也结束。(1)建立一张k行n列的表,每行对应分解中的一个关系模式。2、检验一个分解是否是无损连接分解的算法。保存函数依赖,是函数依赖分解。原创 2024-06-21 13:58:18 · 309 阅读 · 0 评论 -
模式分解的概念(上)-分解、无损连接性、保持函数依赖特性
分解后信息发生了丢失,无法对分解后的各关系模式进行连接,来恢复得到原关系模式R中的数据。分解中的三个关系模式进行自然连接,可恢复原关系模式R中的所有信息,我们称对R进。分解中的三个关系模式函数依赖集的并集包含了原关系模式R中的函数依赖集,我。中的每一个子集X,若存在属性Y属于X关于F的闭包并且Y属于。2、判断一个关系模式的集合P是否为关系模式R的一个分解。二、对前面学过的存储学生选课信息中的关系模式R进行分解。1、对关系模式的分解不是唯一的。子集的函数依赖的集合,记为。属性集的并集是R的属性集。原创 2024-06-21 09:45:13 · 316 阅读 · 0 评论 -
候选键的确定方法-如何判断属性集U的子集K是否为候选键、如何找到关系模式的候选键
若确定的主属性集关于函数依赖集F的属性集闭包也不等于U,则需将在函数依赖两边均出现的LR。(1)遍历属性集U中所有的真子集,求出各真子集关于函数依赖集F的属性集闭包,从求解的结果。(1)采用算法2,来排除K的初值U中的冗余属性,计算剩余属性的属性集闭包,来得到关系模式。(1)根据最小函数依赖集F中属性的类别,利用判定定理,快速确定候选键中的主属性,再对主。该寻找K的方法,属性集闭包的计算量为U中属性个数,较前一种方法有所减少。的值为U,则A为主属性,要保留,若不为U,则将属性A从K中删除。原创 2024-06-20 19:08:41 · 695 阅读 · 0 评论 -
函数依赖集等价、最小函数依赖集
函数依赖集F当且仅当满足下列条件时,称为最小函数依赖集,或极小函数依赖集,或最小覆盖。假设F、G为一个关系模式上的两个函数依赖集,函数依赖集的最小函数依赖集不一定是唯一的。三、学生选课数据库中的最小函数依赖集。第一步:对F中的每一个函数依赖。第二步:对G中的每一个函数依赖。属性与属性之间的约束关系。2、寻找最小函数依赖集。具有实践上的重要性,也。是进行模式分解的基础。原创 2024-06-20 00:07:08 · 289 阅读 · 0 评论 -
逻辑蕴含、函数依赖集的闭包、Armstrong公理、属性集闭包
(2)属性集X关于函数依赖集F的闭包是F的闭包中的函数依赖的决定因素是属性集X的属性的集合,以下简称为属性集闭包。是否属于F的闭包的问题转化为判断Y是否为X关于F的闭包的子集的问题,而X关于F的闭包可由算法帮助实现。对于一个函数依赖集,其闭包中所包含的函数依赖有很多,从函数依赖集F求其闭包是很困难的,对于任意的函数依赖,通过判断是否在闭包中来判断该函数依赖是否为函数依赖集F所逻辑蕴含是。设F是关系模式R上的函数依赖集,X、Y是R的属性子集,对于R的每个。(1)函数依赖集F的闭包是F所蕴含的函数依赖的集合。原创 2024-06-19 18:26:59 · 409 阅读 · 0 评论 -
范式(下)-BC范式(BCNF)、关系模式的规范化
(2)可将决定因素不是候选键的函数依赖所涉及的属性单独构成一个关系模式,即将STC分解为TC和ST两个关系模式。(3)通过将STC分解为满足BCNF的关系模式,解决了插入教师授课信息和删除学生选课信息不。(2)从低范式到高范式,不断消除着关系模式所带来的数据冗余、更新异常和数据不一致问题,关系模式的规范化是指将一个低一级的关系模式分解为若干高一级关系模式的集合的这个过程。(1) 用一组函数依赖充分表达应用语义所包含的关系模式属性间的约束关系。(2)范式的判定(关键是确定关系模式的候选键)原创 2024-06-19 13:17:28 · 447 阅读 · 0 评论 -
范式(上)-第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、可用关系模式
学生姓名完全依赖于学生学号,所在系完全依赖于学生学号,系主任完全依赖于学生学号,每个属性对应的域都是原子的,满足第一范式的条件,因此关系模式R属于第一范式,即。,学生姓名,所在系,系主任,成绩)属于第一范式,但是依旧存在着。,学生姓名,所在系,系主任)中系主任传递函数依赖于学生学号。成绩完全依赖于候选键(学生学号,课程编号),而。关系模式R3(学生学号,学生姓名,所在系)和。,学生姓名,所在系,系主任,成绩)和。,学生姓名,所在系,系主任,成绩),学生姓名,所在系,系主任,成绩)原创 2024-06-18 20:47:51 · 621 阅读 · 0 评论 -
函数依赖-函数依赖、平凡函数依赖、完全与部分函数依赖、传递函数依赖
关系模式中的属性间的部分依赖和传递依赖才是导致关系模式出现数据冗余、更新异常及数据不一。4、新的关系模式R依旧存在着数据冗余、更新异常、数据不一致问题。对于R中的任意一个可能的关系实例r(R)及。是关系模式中属性与属性之间存在的一种重要。设有关系模式R,其属性集为 U,称Y函数依赖于X,或X函数决定Y,若Y不函数依赖于X,记为。,学生姓名,所在院,院长,成绩)1、将关系模式R的模式结构改为。F是R的属性集中的一组函数依赖。5、属性与属性之间的函数依赖。三、关系模式R中的函数依赖。二、完全与部分函数依赖。原创 2024-06-18 18:08:46 · 279 阅读 · 0 评论 -
关系模式的规范化设计概述-认识“好”的数据库模式、数据依赖
(3)由于关系模式中的域和属性向域的映射两个要素对设计关系模式的作用不大,在讨论关系模式的规范化设计时,一般把关系模式简化为R(U,F),在单独提出F时,关系模式还可以简化为R(U)问题 ,由此可见,关系模式R并不是一个好的关系模式,把几个关系模式合成为一个关系模式后,属性间增加了一些可能产生问题的数据依赖。三、一个关系模式R的数据库模式和有着多个关系模式(S,C,SC,D)的数据库模式,哪一个更好?,反应的是现实世界事物特征间的一种依赖关系,是数据内在的特性,是语义的体现。原创 2024-06-18 12:01:46 · 379 阅读 · 0 评论 -
SQL语言-关系数据库的标准语言
对视图的操作由系统自动转换成等价的对基本表的操作,但对视图的更新有很多限制。SQL还可通过创建表上的。主要包括对基本表TABLE、视图VIEW、索引INDEX的创建CREATE和撤销DROP。等三种操作,对数据表进行更新操作时可能会破坏表之间的参照完整性,DBMS一般采取相应的策略进行处理。的授权GRANT和收权REVOKE操作,数据定义、数据查询、数据更新、数据控制。,可实现关系代数中的所有运算。与视图结合,可提高数据的安全性。是关系数据库的标准语言,兼有。主键、外键,以及有关的约束。原创 2024-06-17 18:53:11 · 266 阅读 · 0 评论 -
SQL综合查询-学校教务管理系统数据库
七、创建一个视图v1,给出所有“数计学院”学生的学号,姓名,性别,所在班级号和选修“计算机网络”课程的分数(在此题中不需要显示属于数计学院但未选修计算机网络这门课程的学生)五、统计“数计学院”所有教师的教师编号,教师姓名,2024年度教授的总课程数和总学分数,按总学分数从低到高排列。【ORDER BY 【ASC|DESC】【,【ASC|DESC】,...】】SELECT 【ALL|DISTINCT】【,,...】原创 2024-06-17 18:03:42 · 1027 阅读 · 0 评论 -
授权控制-数据库用户分类、授权(GRANT)、收权(REVOKE)
3、操作权限包括创建(CREATE)、修改(ALTER)、删除(DROP)、查询(SELECT)、更新(插入(INSERT)、修改(UPDATE)、删除(DELETE)),有的DBMS中用ALL PRIVILEGES表示所有操作权限。SQL语言的数据控制功能,体现在DBMS的授权机制上,目的是实现数据库的安全访问,确保只有授权用户才能访问数据库,所有未被授权的用户无法获取数据,如何利用SQL语言提供的授权((3)数据库对象用户。2、授予用户user1对表s的查询权限,并具有给其他用户授权的权限。原创 2024-06-17 08:54:32 · 1282 阅读 · 0 评论 -
索引-定义、创建(CREATE INDEX)、删除(DROP INDEX)
用于响应特定查询条件进行查询时的查询速度,DBMS根据查询条件从数据库文件中,选择出一条或者多条数据记录以供检索,当多个数据记录均满足某一查询条件时,按数据记录的物理顺序,第一条记录最先被找到,并将其指定为当前记录,以后的查找操作就从这条记录开始,再定位满足条件的下一条记录,创建索引后,相应的索引描述存储到数据字典中,当不在需要索引时应及时删除,避免系统为维护索引降低系统操作性能。(1)UNIQUE:索引键值唯一,即创建的索引中不包含索引键值相同的索引项。原创 2024-06-16 18:45:11 · 507 阅读 · 0 评论 -
视图-什么是(VIEW)?怎么创建(CREATE VIEW)?怎么删除(DROP)?怎么用(SELECT/INSERT/UPDATE/DELETE)?
之前对数据库的操作都是针对基本关系表,操作都是在数据库的全局逻辑模式上进行的,而在实际的数据库系统中,可能用户只关心或只被允许使用数据库中的某些基本关系表或基本关系表中的某些属性列,这些数据构成了数据库的外模式,外模式的定义可通过定义视图来实现。注:DBMS执行对视图的查询时,首先要进行有效性检查,检查查询中涉及的基本表、视图是否存在,如果存在,则从数据字典中取出视图的定义,把定义的子查询与用户对视图的查询结合起来,转化为对等价基本表的查询。原创 2024-06-15 20:37:59 · 1006 阅读 · 0 评论 -
数据更新-插入元组(VALUES)、修改属性(SET)、删除元组(DELETE)
执行SELECT子句将会删除指定表中所有的元组,单不会删除表,表的定义依旧存在于数据库的数据字典中,只不过。4、举例2:将学号为‘202218014030’的学生所学“高分子材料”的成绩改为95.0。INSERT INTO 【(【,...】)】=【,=,...】,则VALUES子句中新插入的元组在每个属性上必须有值,且。 【(原创 2024-06-14 13:44:33 · 941 阅读 · 0 评论 -
集合查询-并(UNION)集运算、交(INTERSECT)集运算、差(EXCEPT)集运算
两个SELECT语句的结果集进行差运算的结果是从第一个SELECT语句的结果集中去除第二个SELECT语句的结果集中存在的元组之后所形成的新的元组集。3、不同的DBMS对集合查询的支持程度不同,语义动词可能会不一样,比如有的DBMS进行差集运算的语义动词是MINUS。两个SELECT语句的查询结果进行交运算的结果是在两个SELECT语句中同时存在的元组的集合。3、举例:查询选修了课程号为“001”但没选修“002”课程的学生学号。3、举例:查询既选修了“001”课程又选修了“002”课程的学生学号。原创 2024-06-13 20:05:20 · 639 阅读 · 0 评论 -
嵌套查询(二)-谓词EXISTS实现嵌套查询
第一层子查询和第二层子查询都是相关子查询,并且第二层子查询与第一层子查询中用到了相同的表并且还在第二层子查询中使用到了两个表的属性值比较,因此至少要对其中一个表进行重命名操作。3、嵌套查询是指在一个SELECT查询中嵌套另一个SELECT查询,增强了SQL语言的查询能力,第一层子查询和第二层子查询都是相关子查询,用到了当前父查询元组的属性值。该子查询是一个相关子查询,用到了父查询中当前元组的属性值。4、在实际应用中,应根据查询需求选择合适的查询嵌套方式,在。3、举例3:查询选修全部课程的学生的姓名。原创 2024-06-13 17:43:59 · 354 阅读 · 0 评论 -
嵌套查询(一)-谓词IN、量词ANY、量词ALL、比较运算符
或者子查询,被嵌套的上层查询被称为父查询,在子查询中还可以继续嵌入子查询,构成多层嵌套查询,一个查询的结果可能是一个关系,即元组的集合,也可能是一个值,即聚集函数的结果,因此,子查询既可以嵌套在其。该查询需求也可以使用连接查询满足,但是从DBMS对SQL语句的查询语句的处理方式来看,嵌套查询语句更有利于生成优化的查询执行方案。一、在多个表之间进行数据查询,除了可以使用连接查询之外,也可以使用嵌套查询,那么什么是嵌套查询呢?(1)这里的子查询结果与父查询的当前元组有关,这种查询被称为相关子查询。原创 2024-06-13 12:46:18 · 917 阅读 · 0 评论 -
连接查询-外连接(FULL JOIN)、内连接(JOIN)、自身连接
原因:WHERE子句的处理对象是进行左外连接好的新表中的元组,而正确示例中的元组选择条件的处理对象是受着左外连接影响的多个表中的元组。SELECT语句进行查询一次只能去处理同一个表中的一个元组,要想同时处理同一个表中的两个元组就要用到自身连接查询。5、举例1(反应实质):查询所有学生姓名及选修课称号为“003”的成绩,没有选修该课程的学生,成绩显示为空。在外连接查询中,连接条件一定是在FROM子句中的ON项的后面的。外连接查询的实质是将连接到的表中的元组一定要显示出来,其它。原创 2024-06-12 21:43:45 · 1285 阅读 · 1 评论 -
分组聚集查询-GROUP BY子句
在SELECT子句显示除聚集属性以外的属性和在HAVING子句中使用到的除聚集属性以外的属性必须是出现在GROUP BY子句中的属性。【ORDER BY 【ASC|DESC】【,【ASC|DESC】,...】】【GROUP BY 【,,...】【HAVING 】】【GROUP BY 【,,...】【HAVING 】】FROM 【,,...】原创 2024-06-12 17:36:12 · 416 阅读 · 0 评论 -
查询满足条件的元组-WHRER子句(运算符、BETWEEN 、LIKE、IN、NULL)
(1)作用:用于判断属性值是否为空,当元组的某个属性未被赋值时,系统会将NULL放在这个属性的属性值的位置上,表示该属性值是空缺的。【ORDER BY 【ASC|DESC】【,【ASC|DESC】,...】】【GROUP BY 【,,...】【HAVING 】】(2)举例:查询出生时间在2001-01-01到2003-12-31之间的学生的姓名和出生时间。(3)举例:查询所有缺少选课成绩的学生的学号和相应的课程号。原创 2024-06-12 12:12:38 · 858 阅读 · 0 评论 -
SQL-查询结果显示-投影、去重、重命名、排序
(1)目标列表达式可以除了可以是属性列外,也可以是与属性列相关的表达式,包括函数、字符串常量、运算符三种形式。ORDER BY 【ASC|DESC】【,【ASC|DESC】,...】SELECT 【ALL|DISTINCT】【,,...】SELECT 【ALL|DISTINCT】【,,...】结论:语句中的属性列的列的顺序与查询结果中的属性列的顺序是一致的。】【,,...】原创 2024-06-11 13:31:06 · 851 阅读 · 0 评论 -
基本表的定义:创建表、修改表、删除表
2、基本表的定义会存入DBMS的数据字典中,由DBMS根据数据字典中的信息自动检查用户操作是否符合完整性约束条件,从而实现关系的实体完整性、参照完整性和用户自定义完整性。1、使用SQL语言中的CREATE TABLE语句,指定了关系表的表名、属性列的列名和属性域(DBMS所支持的数据类型)(2)UNIQUE 约束(不允许属性列中出现重复的属性值),对关系中的候选键属性必须保证为非空且唯一,以保证实体完整性。(3)在创建数据库时,可自定义指定这两个文件的位置,如不指定,将会采用默认位置。原创 2024-06-10 12:33:51 · 730 阅读 · 0 评论 -
关系数据库标准查询语言-SQL-SQL语言概述
【,【】,...】(【】1、联机交互(使DBMS实例,如SQL Server)】【,,...】【,,...】【,,...】【3、具有定义、查询、更新、控制四大功能。【,】);尖括号中的内容为实际语义。1、是高度非过程化的语言。】】】原创 2024-06-09 18:23:19 · 342 阅读 · 0 评论