数据库系统原理

关系代数:

1.选择(select)运算,用小写sigma(σ)表示

例子:

找出关系instructor中属于物理系的所有教师

σdept_name=”Physics”(instructor)

找出工资额大于90000美元的所有教师

σsalary>90000(instructor)

2.投影(project)运算,用大写pi(π)表示

例子:

列出所有教师的ID、name和salary,而不关系dept_name。

πID, name, salary(instructor)

找出物理系所有教师的名字

πname(σdept_name=”Physics”(instructor))

3.并(union)运算,用∪表示

例子:

找出开设在2009年秋季学期或者2010年春季学期或者这二者皆开的所有课程的集合。

σcourse_id(σsemester=”Fall”∧year=2009(section))∪σcourse_id(σsemester=”Spring”∧year=2010(section))

4.集合差(set-difference)运算,表达式r-s包含所有在r中而不在s中的元组的关系

例子:

找出所有开设在2009年秋季学期但是在2010年春季学期不开的课程。

σcourse_id(σsemester=”Fall”∧year=2009(section))-σcourse_id(σsemester=”Spring”∧year=2010(section))

5.笛卡尔积(Cartesian-product)运算,关系r1和r2的笛卡尔积写作r1×r2

例子:

找出物理系中的所有教师,以及他们所教授的所有课程。

σdept_name=”Physics”(instructor×teaches)

投影得到需要的教师名字列和corse_id列

πname, course_id(σinstructor.ID=teaches.ID(σdept_name=”Physics”(instructor×teaches)))

6.更名(rename)运算,用小写rho(ρ)表示

例子:

πinstructor.salary (σinstructor.salary

 

范式:

1.第一范式:

强调的是列的原子性,即列不能够再分成其他几列。

例子:

原:【联系人】(姓名,性别,电话)

改:【联系人】(姓名,性别,公司电话,家用电话)

2.第二范式:

一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键

例子:

原:【OrderDetail】(OrderID,ProductID,UnitPrice,Discount,Quantity,ProductName)

拆分: 【OrderDetail】(OrderID,ProductID,Discount,Quantity)

【Product】(ProductID,UnitPrice,ProductName)

3.第三范式:

任何非主属性不依赖于其它非主属性[在2NF基础上消除传递依赖]

例子:

原:【Order】(OrderID,OrderDate,CustomerID,CustomerName,CustomerAddr,CustomerCity)

拆分:【Order】(OrderID,OrderDate,CustomerID)和【Customer】(CustomerID,CustomerName,CustomerAddr,CustomerCity)

 

E-R图:

候选键:可以作为key属性的最简形态(缺一不可)可以存在多个候选键

主键:候选键中选出一个最主要的key属性 ,用来唯一确定实体

超码:所有能成为key属性的属性及其集合(可以有冗余属性,可能删掉其中一两个属性还是能成为关键属性)

外键:另外一个实体集的主键,用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段,与另外一个表格里相连的字段。这些相连的字段就是外键。

超码 > 候选键> 主键

超码唯一标识实体,候选码为超码的最简形态(缺一个就不可以唯一标识实体)

 

1、实体

实际问题中客观存在的并且可以相互区别的事物称为实体。实体是现实世界中的对象,可以具体到人,事,物。可以是学生,教师,图书馆的书籍。

2、属性

实体所具有的某一个特性称为属性,在E-R图中属性用来描述实体。比如:可以用“姓名”“姓名”“出生日期”来描述人。

3、实体集

具有相同属性的实体的集合称为实体集。例如:全体学生就是一个实体集,(983573,李刚,男,1999/12/12)是学生实体集中的一个实体。

4、键

在描述实体集的所有属性中,可以唯一标识每个实体的属性称为键。键也是属于实体的属性,作为键的属性取值必须唯一且不能“空置”。

5、实体型

具有相同的特征和性质的实体一定有相同的属性,用实体名及其属性名集合来抽象和刻画同类实体称为实体型,其表示格式为:实体名(属性1,属性2,……)

6、联系

世界上任何事物都不是孤立存在的,事物内部和事物之间都有联系的,实体之间的联系通常有3种类型:一对一联系,一对多联系,多对多联系。

实体(方框表示),联系(菱形表示),属性(椭圆表示),联系(直线表示)

数据库系统原理_第1张图片,

 

 

T-SQL:

什么是t-sql,SQL SERVER专用标准结构化查询语言增强版,新的预存程序、系统资料表、函数、资料型别、陈述式以及现存陈述式中的选项

全局变量由系统定义和维护,以两个@@开头,用户不能定义全局变量

局部变量,作用范围在begin到end语句块之间,declare语句专门用于定义局部变量

用户变量,基于会话变量实现的, 可以暂存值,以"@"开始,赋值:(可以使用set或select)

 

数据库系统原理变量的含义及其属性?

 

关系模型的优点?

(1).关系模型是建立在严格的数学概念基础之上

(2).关系模型的概念单一,统一用关系来表示实体和实体之间的联系,关系模型的数据结构简单清晰,用户易懂易用

(3).存取路径对用户透明,具有更高的数据独立性,更好的安全保密性,简化了数据库开发建立的工作

 

简述用户定义数据完整性约束?

用户定义的完整性约束是是针对某一应用环境的完整性约束条件,它反映了某一具体应用所涉及的数据应满足的要求.关系模型提供定义和检查这类完整性规则的机制,统一由系统来处理,不再有应用程序来完成这项工作

 

简述实体完整性约束?

 

简述参照完整性约束?

 

简述外模式/模式映像及其如何保证数据的逻辑独立性?

 

简述sql的调用及其目的?

sql调用包括sql例程和调用规则

主要目的:提高sql的灵活性,提高sql的有效性,提高sql的共享性,使sql具有更多的高级语言的特性

 

简述封锁级别的内容?

读未提交.读已提交.不可重复读.可串行化

0级封锁:封锁的事务不重复写其他非0封锁事务的未提交的更新数据

1级封锁:被封锁的事务不允许重写未提交的更新数据

2级封锁:被封锁的事务既不重写也不读未提交的更新数据

3级封锁:被封锁的事务不读未提交的更新数据,也不写任何未提交的数据

 

简述数据操纵语言的功能及主要sql语句?

用于操纵数据库中的各种对象,特别是检验和修改数据

主要sql:select检索数据,insert插入数据,update修改数据

 

简述使用游标的注意事项及作用?

游标只能用于存储过程或存储函数中,可以定义多个游标,但是在begin-end中名字必须唯一,游标不是select语句,而是select检索出来的结果集,作用是sql语句处理的是记录集合,而主语言一次只能处理一个记录,因此需要使用游标机制,把集合操作转换成单记录方式处理

 

简述事务概念和特征?

概念:事务是由用户定义的一个数据操作序列,这些操作作为一个完整的工作单元,要么全部执行要么全不执行,是不可分割的工作单位

特征:原子性,一致性,隔离性,持久性

 

数据库并发问题?

    丢失更新,脏数据,不可重复读

 

什么是封锁的粒度?

封锁对象的大小

 

数据库可恢复性的定义?

(1).数据库的转储和恢复

(2).数据库安全性,完整性控制

(3).数据库性能监督,分析和改进

(4).数据库的重组织和重改造

 

触发器的概念和作用?

通过事件进行触发而被执行的,(1) 强化约束(Enforce restriction) 触发器能够实现比CHECK 语句更为复杂的约束。(2) 跟踪变化Auditing changes触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。 (3) 级联运行(Cascaded operation)。触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。 (4) 存储过程的调用(Stored procedure invocation)。

 

存储过程的概念和优点?

一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译

优点,存储过程可以重复使用,提高代码复用性,减少网络io,提高安全性

 

数据模型的分类?

概念数据模型,结构数据模型

你可能感兴趣的:(计算机科学与技术)