DBS=DB+DBMS
数据库的四个基本概念:数据(Data)、数据库(DataBase)、数据库管理系统(DBMS)、
数据库系统(DBS)
数据库的三个发展阶段:
人工管理阶段:20世纪50年代中期以前
文件系统阶段:20世纪50年代后期到60年代中期 数据库系统阶段:20世纪60年代后期以来
数据库的5个组成部分:数据库、数据库管理系统、数据库管理员、硬件平台、软件平
台
数据库的基本特征:数据按照一定的数据模型组织描述和存储;可为各种用户共享;冗
杂度较小;数据独立性较高;易扩展
数据模型:层次模型、网状模型、关系模型(重点P3) 常见的关系操作:
-查询:选择、投影、连接、除、并、补、交、差 -数据更新:插入、删除、修改
-查询的表达能力是其中最主要的部分
-选择、投影、并、差、笛卡尔基是5种基本操作 实体与关系的关系:一对一、一对多、多对多 模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,一个数
据库只有一个模式
外模式:也称用户模式,一个数据库可以有多个外模式
内模式:也称存储模式,一个数据库只有一个内模式,是数据物理结构和存储方式的
描述
三级模式之间的映射:
外模式|模式映射:依据数据外模式编写的应用程序就不用修改,保证了数据域程序的逻辑独立性
模式|内模式映射:保证了数据与程序的物理独立性 T-SQL语言的组成
数据定义语言:SQL让用户定义存储数据的结构和组织,以及数据项之间的关系; 数据检索语言:SQL允许用户或应用程序从数据库中检索数据并使用它;
数据操作语言:SQL允许用户或应用程序通过添加新数据、删除旧数据和修改以前存储的数据来对数据库进行更新;
数据控制语言:可以使用SQL来限制用户检索、添加和修改数据的能力,保护存储的数据不被未授权的用户访问 数据库操作类SQL语句 3语句 SELECT INSERT DELETE UPDATE
数据库定义类SQL语句
功能 从数据库中检索数据行和列 把新的数据记录添加到数据库中 从数据库中删除记录 修改现有的数据库中的数据 语句 CREATE TABLE DROP TABLE ALTER TABLE 事务控制类SQL语句 语句 COMMIT ROLLBACK SET TRANSACTION
程序化SQL语句 语句 OPEN FETCH CLOSE 功能 检索查询结果并打开一个游标 检索一条查询结果记录 关闭游标 功能 结束当前事务 中止当前事务 定义当前事务数据访问特征 功能 在一个数据库中创建一个数据库表 从数据库删除一个表 修改一个现有表的结构 select 所需查找*** from **(数据库·表)
where 属性|特性
局部变量名必须以@开头
为局部变量赋值的两种方法:一种是使用SELECT语句,一种是使用SET语句 全局变量名称都是以@@开头的 SQL支持的逻辑运算符 运算符 AND BETWEEN IN LIKE NOT
字符串连接运算符:+
SQL支持的通配符的描述和示例 通配符 % 描述 包含零个或更多字符的任意字符 示例 “loving%”可以表示为:”loving”、”loving you ”、”loving?” 行为 如果两个布尔表表达式均为TRUE,则值为TRUE 如果操作数是在某个范围内,则值为TRUE 如果操作数与一个表达式列表中的某个相等的话,则值为TRUE 如果操作数匹配某个模式的话,则值为TRUE 对任何其他布尔运算符的值取反 -(下划线) 任何单个字符 “loving-”可以表示:”lovingc”,后面只能再接一个字符 [0~9]123表示以0~9之间任意一个字符开头,以‘123’结尾的字符 [^0~5]123表示不以0~5之间任意一个字符开头,却以‘123’结尾的字符 [ ] 指定范围([a~f])或集合([abcdef])中的任何单个字符 不属于指定范围([a~f])或集合([abcdef])或集合的任何单个字符 [^]
数据库管理系统的功能:
数据存取的物理构建、数据操作功能、数据定义功能、数据库的运行管理、数据库的建立和维护功能
完整性约束包括:实体完整性、参照完整性、用户定义的完整性 数据库文件:
主要数据文件(.mdf)、次要数据文件(.ndf)、事务日志文件(.ldf)
4个系统数据库:master数据库、Tempdb数据库、Model数据库、msdb数据库 表与表之间的关系:一对一、一对多、多对多 查询Employee表中的所有列的信息,SQL语句: use db_2008
SELECT ID,Name,Sex,Age FROM Employee
SELECT * FROM Employee中的*表示所有列 使用别名的3种定义方法: 别名=列名 列名AS别名 列名 别名
逻辑运算符的优先顺序是:NOT(最高)、然后是AND,最后是OR 通配符 通配符 % 说明 包含零个或多个字符的任意字符串 示例 WHERE title LIKE ‘%computer%’将查找在书名中任意位置包含单词”computer”的所有书名 WHERE au_fname LIKE ‘_ean’将查找以ean结尾的所有4个字母的名字(Dean、Sean等) WHERE au_lname LIKE ‘[C-P]arsen’将查找以arsen结尾并介于C与P之间的任何单个字符开始的作者姓氏,例如 Carsen、Larsen、Karsen-(下划线) 任何单个字符 [ ] 指定范围([a~f])或集合([abcdef])中的任何单个字符 等 [^] 不属于指定范围([a~f])或集合([abcdef])或集合的任何单个字符 WHERE au_lname LIKE ‘de[^1]%’将查找以 de开始并且其后的字母部位1的所有作者的姓氏 在Employee表中查询Age在22和24之间的员工信息,SQL语句:
USE bd_2008
SELECT * FROM Employee
WHERE Age BETWEEN 22 AND 24 GROUP BY语句:表示按一个或多个列或表达式的值将一组选定行组合成一个摘要行
集
ORDER BY语句:指定在SELECT语句返回的列中所使用的排序顺序,ASC(升序)、
DESC(降序)
DISTINCT关键字:主要用来从SELECT语句的结果集中去掉重复的记录 视图是一种常用的数据库对象,它将查询的结果以虚拟表的形式存储在数据中。视图的
结构和内容是建立在对表的查询基础之上的,和表一样包括行和列。这些行列数据都来源于其引用的表,并且是在引用视图过程中动态生成的
创建索引一方面能够加速数据检索、提高数据访问的速度,一方面也确保了数据的唯
一性,加速了连接等操作
索引是为了加速对表中数据行的检索而创建的一种分散存储结构 按照存储结构的不同,可以将索引分为两类:聚集索引和非聚集索引
聚集索引:每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序;聚集索
引有两种方式实现:PRIMARY KEY和UNIQUE约束 非聚集索引:一个表中能创建其的个数为多个
建立索引的原则:只有表的所有者可以在同一个表中建立索引; 每个表中只能创建一个聚集索引;
每个表中最多可以创建249个非聚集索引
数据库完整性是SQL Server用于保证数据库中数据一致性的一种机制,防止非法数据
存入数据库
4种数据完整性机制:域完整性、实体完整性、引用完整性、用户定义完整性 域完整性常见的实现机制包括以下几种:默认值(Default)、检查(Check)、外键(Foreign
Key)、数据类型(Data Type)、规则(Rule)
可以通过以下几项实现实体完整性:唯一索引(Unique Index)、主键(Primary Key)、
唯一码(Unique Key)、标识列(Identity Column) 参照完整性的实现方法如下:外键(Foreign Key)、检查(Check)、触发器(Trigger)、
存储过程(Stored Procedure)
AVG(平均值)函数、MIN(最小值)函数、MAX(最大值)函数、COUNT(统计)
函数、DISTINCT(取不重复记录)函数
CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型
存储过程(Stored Procedure)是预编译SQL语句的集合,这些语句存储在一个名称下
并作为一个单元来处理
3种类型的存储过程:系统存储过程、自定义存储过程、扩展存储过程
Microsoft SQL Server 提供两种主要机制来强制使用业务规则和数据完整性:约束和触
发器
在SQL Server 中一张表可以有多个触发器
SQL Server 包括3种常规类型的触发器:DML触发器、DDL触发器、登陆触发器 你可以设计一下类型的DML触发器:AFTER触发器、 INSTEAD OF触发器、CLR触发器
游标是取用一组数据并能够一次与一个单独的数据进行交互的方法
一个完整的游标由5部分组成:声明游标、打开游标、从一个游标中查找信息、关闭游标、释放游标
SQL Server 提供4种类型的游标:静态游标、动态游标、只进游标、键集驱动游标 消耗的资源:静态游标<键集游标<动态游标 事务是由一系列语句构成的逻辑工作单元 事务处理的结果只有两种:一种是在事务处理的过程中,如果发生了某种错误则整个事务全部回滚,使所有对数据的修改全部撤销,事务对数据库的操作都是单步执行的,当遇到错误时可以随时回滚;另一种是如果没有发生任何错误且每一步的执行都很成功,则 整个事务全部被提交
事务包含的4种重要的属性(ACID):原子性、一致性、隔离性、持久性
使用POLLBACK TRANSACTION语句可以将显式事务或隐式事务回滚到事务的起点或事务内的某个保存点
事务的并发性问题体现在:丢失更新、未确认的相关性(脏读)、不一致的分析(不可重复读)、幻象读 锁是一种机制,用于防止一个过程在对象上进行操作时,同某些已经在该对象上完成的事情发生冲突,锁可以解决事务的并发问题 锁模式
描述 用于不更改或不更新数据的操作(只读操作),如SELECT语句 用于可更新的资源中。防止当多个会话在读取、锁定及随后可能进行的资源更新时发生常见形式的死锁 用于数据修改操作,例如INSERT、UPDATE或DELETE。确保不会同时出现同一资源进行多重更新 用于建立锁的层次结构。意向锁的类型为:意向共享(IS)、意向排他(IX)以及与意向排他共享(SIX) 在执行依赖于表架构的操作时使用。架构锁的类型为:架构修改(Sch-M)和架构稳定性(Sch-S) 向表中大容量复制数据并指定了TABLOCK提示时使用 锁模式 共享(S) 更新(U) 排他(X) 意向 架构 大容量更新(BU)
当两个或多个线程之间有循环相关性时,将会产生死锁。死锁是一种可能发生在任何多
线程系统中的状态,而不仅仅发生在关系数据库管理系统中
在数据库系统中,如果多个进场分别锁定了一个资源,并又要访问已经被锁定的资源,
则此时就会产生死锁,同时也会导致多个进程都处于等待的状态 在事务处理中,涉及一个以上数据库的事务被称为分布式事务。分布式事务跨越两个或
多个被称为资源管理器的服务器 分布式事务处理协调器(DTC)系统服务负责协调跨计算机系统和资源管理器分布的
事务
要想恢复数据库必须有日志文件
SQL Server支持以下的数据库备份:完整备份、差异备份、文件备份
恢复模式旨在控制事务日志维护,有3种恢复模式:简单恢复模式、完整恢复模式、大
容量日志恢复模式
外码:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S
的主码Ks相对应,则称F是基本关系R的外码 现有关系数据库如下:
学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数)
分别用关系代数表达式和SQL语句实现下列1—5小题、:
1. 检索所有“数学”专业的学生的学号,姓名和专业;
2. 检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;
3. 检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数; 4. 检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
1.SQL语句:
SELECT 学号, 姓名,专业FROM 学生 WHERE 专业=“数学 ”
2. SQL语句:
SELECT 学生.学号,姓名,课程名,分数 FROM 学生,学习,课程 (1分)
WHERE 学习.学号=学生.学号 AND 学习.课程号=课程.课程号 AND 专业 =‟英语‟ (1分
3. SQL语句:
SELECT 学生.学号,姓名,专业,分数 FROM 学生,学习,课程 (1分)
WHERE 学生.学号=学习.学号 AND 学习.课程号=课程.课程号 AND分 数>90 AND 课程名=„数据库原理‟ (1分)
4.SQL语句:
SELECT 学号,姓名,专业 FROM 学生
WHERE 学号 NOT IN (1分)
(SELECT 学号 FROM 学习 WHERE 课程号=„C135‟) (1分)
设有商店和顾客两个实体,“商店”有属性商店编号、商店名、地址、电话,“顾客”有属性顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。试画出E-R图,注明属性和联系类型,并将E-R模型转换成关系模式,要求关系模式主码加下划线 表示,外码用波浪线﹏﹏﹏﹏。(E-R模型7分,关系模型9分)
因篇幅问题不能全部显示,请点此查看更多更全内容