🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀数据库💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光
目录
前言
常见概念
一、什么是数据库?
二、什么是数据独立性?数据库系统如何实现数据独立性?
三、简述数据库管理员的职责
四、简述数据库系统三级模式结构及其同数据独立性之间的关系
五、什么是 DBMS?
六、 试述 ER 模型、层次模型、网状模型、关系模型和面向对象模型的主要特点
关系代数
题目一
题目二
总结
前言
本系列的重点是大学本科课程《数据库系统概念》。总结数据库学习中的各类知识点,并且对各类数据库考试中可能遇到的题型和对应的解法做总结归纳。在自我复习的同时也将这份心得带给大家,希望能对大家的数据库学习提供帮助~~
本篇复习的点是数据库中的常见概念
常见概念
一、什么是数据库?
定义:数据库=存放数据的一个仓库=数据集合
修饰:按照数据模型组织、长期存储在计算机内、为多用户共享、由数据库管理系统统一管理
数据库是按照一定的数据模型组织的、长期存储在计算机内,可为多个用户共享的、由数据库管理系统统一管理和控制的数据的集合
二、什么是数据独立性?数据库系统如何实现数据独立性?
数据独立性:数据和应用程序相互独立
数据库利用三级结构、两级映像实现数据独立性
数据独立性是指应用程序和数据之间是相互独立的,即数据发生变化不必修改应用程序。数据变化包括数据逻辑结构变化、数据物理结构变化,因此独立性可以分为逻辑独立性和物理独立性。逻辑独立性指数据逻辑结构变化不影响应用程序变化;物理独立性指数据物理结构变化不必修改应用程序。
数据独立性包括以上两个部分,是由DBMS的三级模式和两级映像实现的。三级模式包括外模式、模式、内模式,两级映像包括外模式/模式映像和模式/内模式映像。当数据物理结构变化时,通过修改模式/内模式映像,可以使得模式不发生变化,因此应用程序不用修改;当数据逻辑结构变化时,通过修改外模式/模式,可以使得外模式不变,因此应用程序不变。因此保证了数据独立性
三、简述数据库管理员的职责
定义:模式定义、存储结构及存取方式定义、
修改:模式及物理组织的修改
日常使用:数据访问授权、日常维护
模式定义:数据库管理员通过DDL书写一系列的定义来构造最初的数据库模式
存储结构和存取方式定义:定义数据库用什么存储结构来存储,同时决定是否使用索引等存取方式
模式及物理组织的修改:在定义完成后,因需求变化或提高性能,改进数据库模式/物理结构
数据访问授权:在日常使用中,DBA能够授予不同的用户不同的权限去访问数据库不同的部分
日常维护:定期备份数据库、监视数据库的运行
四、简述数据库系统三级模式结构及其同数据独立性之间的关系
1、简述数据系统三级模式结构
2、简述数据独立性
3、通过两级映像分析三级模式结构和数据独立性的关系
数据库系统存在三级模式分别是外模式、模式和内模式,同时三级模式中存在二级映像分别是外模式/模式映像、模式/内模式映像。数据独立性是指应用程序和数据相互独立,包括逻辑独立性和物理独立性。当物理结构发生变化可以修改模式/内模式映像使得模式不发生变化,从而使得应用程序不发生变化;当逻辑结构发生变化时可以修改模式/模式映像,使得外模式不发生变化,从而使得应用程序不变化
五、什么是 DBMS?
DB:数据库
DBA:数据库管理员
DBMS:数据库管理系统
数据库管理系统,对数据库进行统一的管理和控制
六、 试述 ER 模型、层次模型、网状模型、关系模型和面向对象模型的主要特点
模型描述:
1、数据结构
2、靠什么实现联系
3、执行效率
4、用户理解难度
5、DML是过程化还是非过程化——>编程难度
1、E-R模型是实体联系模型。从实体和实体间的各种关系来表达联系,与计算机系统无关,用户容易理解,且能够充分表达现实世界
2、层次模型的数据结构是树结构,记录之间联系通过指针实现,查询较快,但是DML属于过程化的,操作复杂
3、网状模型的数据结构是有向图,记录之间联系通过指针实现,查询较快,但是DML属于过程化的,编程复杂,不易理解
4、关系模型的数据结构是二维表格,联系靠关系实现。DML属于非过程化的,编程简单,容易理解
5、面向对象模型的数据结构主要是类和对象,联系靠封装、多态、继承等实现。具有丰富的表达能力,能够很好反映现实世界的实际情况。但是用户难以理解,知识面较广
关系代数
关系代数求解流程:
1、确定需要哪几个关系模式
2、确定关系模式之间的关系应该怎么样(技巧见下面)
各种关系使用的场景:
1、产生联系——>自然连接(员工和经理在同一城市——>员工经理要有联系)
2、比较条件(相等、大于、小于)——>笛卡尔积(员工和经理在同一城市——>同一城市同一街道)
3、否条件=全集-正条件(不在那里工作=全集-在那里工作)
4、与“所有”比较大小关系——>可以用Gmin和Gmax聚集处理(比所有高——>Gmax找最高,比较)
5、查询“所有”元组——>利用与全集自然连接
6、爷孙关系——>利用同一关系模式做笛卡尔积(爸爸1儿子1 爸爸2儿子2关系 满足 儿子1=爸爸2)
7、需要多属性参与——>自然连接拓充属性
8、找+比较“所有”下的“所有"——>Gcount+Gmax(聚集函数不能嵌套使用,应该用中间关系分开)
9、与“所有”比较大小关系——>可以用全集-不满足条件=满足条件(减少一次聚集函数使用)
10、使用聚集函数后的更名操作是不必要的,属性名就可以用聚集函数代替(类似sum(salary)就是一个属性名)
11、对于需要用到多次聚集函数/复杂运算的题目——>赋值运算利用中间关系简化
12、已知一个关系,包含所有这个关系元组——>除运算
13、每个+每个——>两个属性进行分组研究(所有出版社找所有员工里满足的)
14、没有借书、上课的也包括——>在加入时就要用左外连接(左边的一定存在)
15、求平均——>用avg
15、平均数=所有/人数——>利用count求每个的值+利用avg实现所有/人数
题目一
基于员工关系模式完成以下查询:
Employee(person_name, street, city)
Works(person_name,company_name,salary)
Company(company_name, city)
Manages(person_name,manager_name)
1、找出与其经理居住在同一城市同一街道的员工
- 确定关系模式用employee和manages
- 思考两个关系模式用的具体关系
2、找出不在First Bank Corporation 公司工作的职工
- 确定关系模式用works和employee(首先是职工,然后是不在~工作;职工在employee中找,因为是职工可能最近刚刚辞职不在works里)
- 思考两个关系模式用的具体关系
Πperson-name(employee) - Πperson-name(σcompany-name = ‘First Bank Corporation’(works))
3、找出比First Bank Corporation 公司所有员工的收入都高的员工姓名
- 确定关系模式用works
- 思考两个关系模式用的具体关系
4、找出所有在经理’Jones’下工作的员工
- 确定关系模式用managers
- 思考两个关系模式用的具体关系
修正:
1、mname=manager_name
2、选择后还要投影到person_name
5、找出所有在经理’Jones’下工作的员工所居住的城市
- 确定关系模式用managers
- 思考两个关系模式用的具体关系
6、找出’Jones’经理的经理
- 确定关系模式用managers
- 思考两个关系模式用的具体关系
7、找出比住在‘Mumbai’的所有员工收入都高那些员工
- 确定关系模式用employee⋈works(同时考虑地址和收入)
- 思考两个关系模式用的具体关系
8、找出First……的所有员工姓名和居住城市
Πperson_name,city(σcompany name = ‘First Bank Corporation’(works⋈employee))
9、找出所有居住地与工作的公司在同一城市的员工姓名
Πperson_name(σcompany.city=employee.city(employee⋈ works⋈ company))
10、找出员工最多的公司
1、找到所有公司的员工——>聚集函数Gcount
2、在所有公司的员工数关系中找最大的——>Gmax
3、在所有公司的员工数关系中找最大的这里用了另一个思路——>求全集的补集
本题的属性更名运算可以不必要,t1的属性默认就是cname、count(pname)
13 、 找出工资总额最少的公司 (smallest payroll)
本题思路和上一题相类似
14 、 找出人均工资比 First 公司人均工资高的公司
题目二
基于图书关系模式完成以下查询
Member(memb_no,name,dob)
Books(isbn,author,publisher)
Borrowed(memb_no, isbn,date)
1、找出借了任何由MG出版的书的员工的姓名
∏name(σpublisher=’MG’(member ⋈ books ⋈ borrowed))
确定好需要三个关系来共同处理本题便做完了
2、找出借了由MG出版的所有的书的员工的姓名
∏name( (∏memb_no,isbn(borrowed) ÷ ∏isbn(σpublisher=’Mc’(books))) ⋈ member)
本题的关键点在于——除运算
3、找出借了至少5本不同的由MG出版的书的员工的姓名
4、对于每个出版商,找出借了至少5本该出版商的书的员工的姓名
5、找出平均每个成员借了多少本书(没借书的成员也包含在内)。
左外连接将没借的也包括在里面
总结
本文的所有知识点、图片均来自《数据库系统概念》(黑宝书)、山东大学李晖老师PPT。不可用于商业用途转发。