数据库系统概述




数据库 | 优势 | 缺点 |
---|---|---|
MySQL | 1)MySQL性能卓越,服务稳定,很少出现异常宕机。 2)MySQL开放源代码且无版权制约,自主性及使用成本低,版本更新较快。 3)MySQL软件体积小,安装使用简单,并且易于维护,安装及维护成本低。 4)MySQL支持多种操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言有很好的支持。 | 数据量大时处理性能不及Oracle |
SqlServer | 1)真正的客户机/服务器体系结构 2)图形化的用户界面,使系统管理和数据库管理更加直观、简单 3)丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地 4)与WinNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等,SQL Server也可以很好地与Microsoft BackOffice产品集成。 5)提供数据仓库功能,这个功能只在Oracle和其他昂贵的DBMS中才有。 | 只能在Windows系统下运行 |
Oracle | 1)Oracle 能在所有主流平台上运行 2)Oracle 性能高,保持开放平台下TPC-D和TPC-C世界记录 3)获得最高认证级别的ISO标准认证 | 价格昂贵 |
PostgreSQL | 1)PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步。 2)PG 性能高速度快。任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降。 3)PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型。 4)PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统 5)PG对数据量大的文本以及SQL处理较快 | |
SQLite | 1)零配置,SQlite3不用安装,不用配置,不用启动,关闭或者配置数据库实例。当系统崩溃后不用做任何恢复操作,再下次使用数据库的时候自动恢复 2)SQLite是被设计成轻量级,自包含的,不依赖服务进程 3)采用无数据类型,所以可以保存任何类型的数据,SQLite采用的是动态数据类型,会根据存入值自动判断 4)可移植,可运行在不同操作系统上 | 数据量不宜过大,sql语句执行相比其他数据库效率较低 |
数据库设计
ER图
ER图转关系模式
1.实例1:将教学管理ER图转换为关系模式
img
(1)把三个实体类型转换成三个模式:
①系(系编号,系名,电话)
②教师(教工号,姓名,性别,职称)
③课程(课程号,课程名,学分)
(2)对于1:1联系“主管”,可以在“系”模式中加入教工号(教工号为外键)。对于1:N联系“聘任”,可以在“教师”模式中加入系编号(系编号为外键)。对于1:N联系“开设”,可以在“课程”模式中加入系编号(系编号为外键)。
- ①系(系编号,系名,电话,主管人的教工号)
- ②教师(教工号,姓名,性别,职称,系编号)
- ③课程(课程号,课程名,学分,系编号)
(3)第三步:对于M:N联系“任教”,则生成一个新的关系模式:
①任教(教工号,课程号,教材)
(4)这样,转换成的四个关系模式如下:
①系(系编号,系名,电话,主管人的教工号)
②教师(教工号,姓名,性别,职称,系编号)
③课程(课程号,课程名,学分,系编号)
④任教(教工号,课程号,教材)
2.实例2:一元联系类型ER图结构转换为关系模式
img
(1)运动员名次之间存在着1:1联系
①运动员(编号,姓名,性别,名次,上一名次编号)
(2)职工之间存在上下级联系,即1:N联系
①职工(工号,姓名,年龄,性别,经理工号)
(3)工厂的零件之间存在着组合关系(M:N联系)
①零件(零件号,零件名,规格)
②组成(零件号,子零件号,数量)
3.实例3:三元联系的ER图结构转换为关系模式
img
①仓库(仓库号,仓库名,地址)
②商店(商店号,商店名)
③商品(商品号,商品名)
④进货(商店号,商品号,仓库号,日期,数量)
三元联系类型的转换
和二元联系类型的转化逻辑基本是一样的:
1)如果实体间联系是1:1:1,可以在三个实体类型转换成的三个关系模式中任意一个关系模式的属性中加入另两个关系模式的键(作为外键)和联系类型的属性。
2)若实体间联系是1:1:N,则在N端实体类型转换成的关系模式中加入两个1端实体类型的键(作为外键)和联系类型的属性。
3)若实体间联系是1:M:N,则将联系类型也转换成关系模式,其属性为M端和N端实体类型的键(作为外键)加上联系类型的属性,而键为M端和N端实体键的组合。
4)若实体间联系是M:N:P,则将联系类型也转换成关系模式,其属性为三端实体类型的键(作为外键)加上联系类型的属性,而键为三端实体键的组合。
如何将ER图转化为关系模型(含案例) - 知乎 (zhihu.com)
关系数据库规范化理论
- 平凡函数依赖:X—>Y,但X包含Y (Y包含于X)。
- 例:(学号,课号)—>课号 #课号存在于 (学号,课号) 之中。
- 非平凡函数依赖: X—>Y,但X不包含Y。
- 例:(学号,课号)—>成绩 #成绩不存在于 (学号,课号) 之中。
SQL
SQL Server 组成数据库的各种对象的类型和作用 P69
数据库安全性和完整性
简答题总结
什么是触发器触发器有什么作用?
SqlServer用户权限的种类有哪些各自的作用?
数据库系统的特点分别是
数据完整性是指
实现数据完整性的途径有
SqlServer数据库备份的类型有四种分别为,三种数据库的还原模型
SqlServer权限分为三类
DML 触发器、规则。约束有
9
0
错题总结
选择题
判断题
填空题
简答题
查漏补缺
- 范式理论
- 数据库设计各个阶段
- Armstrong公理
- 数据库约束创建
- SQL查询
- 关系代数
- 元组表达式
- 并发和事务
- 模式分解算法和函数依赖无损连接判断
- 规范化练习
- 针对SqlServer的简答题
- 查询和” 01 “号的同学学习的课程完全相同的其他同学的信息
- 查询没学过”张三”老师讲授的任一门课程的学生姓名
触发器执行时用到的两个特殊表:deleted ,inserted
deleted 和inserted 可以说是一种特殊的临时表,是在进行激活触发器时由系统自动生成的,其结构与触发器作用的表结构是一样的,只是存放 的数据有差异。
说明deleted 与inserted 数据的差异
deleted 与inserted 数据的差异
nserted 存放进行insert和update 操作后的数据
Deleted 存放进行delete 和update操作前的数据
数据库_Armstrong公理系统 - M1nercy - 博客园 (cnblogs.com)
【数据库理论】关系模式的规范化与查询优化_天堂的鸽子的博客-CSDN博客_关系模式的规范化
数据库中的范式和多值依赖_legendaryhaha的博客-CSDN博客_多值依赖
一、DDL
DDL(data definition language)数据定义语言,用户定义和管理sql数据库中所有对象的语言。
主要命令:create、alter、drop等
二、DML
DML(data manipulation language)数据操纵语言。
主要命令:select、update、insert、delete等
三、DCL
DCL(date control language)数据库控制功能。
主要命令:grant、deny、revoke、commit、savepoint、rollback等
ps:DCL一般只有sysadmin、dbcreator、db_owner、db_securityadmin等人员有权限操作
四、delete和drop区别
drop:删除结构(drop database XXX;drop table XXX)
delete:删除数据(delete 字段名 from 表名 where 条件)
1、数据操纵语言(DML):用来操纵数据库中数据的命令。包括:select、insert、update、delete。
2、数据定义语言(DDL):用来建立数据库、数据库对象和定义列的命令。包括:create、alter、drop。
3、数据控制语言(DCL):用来控制数据库组件的存取许可、权限等的命令。包括:grant、deny、revoke。
sql:查询选修了全部课程的学生姓名
1 | SELECT Sname |