数据库的四个基本概念:
数据,数据库,数据库管理系统,数据库系统
数据库管理技术的产生和发展
1.人工管理阶段
2.文件系统阶段
3.数据库系统阶段
数据库系统的特点
1.数据结构化:数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
2.数据的共享性高,冗余度低且易扩展: 共享性可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。
3.数据独立性高
数据独立性包括: 物理独立性和逻辑独立性:
物理独立性:指用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性:指用户的应用程序与数据库的逻辑结构相互独立。
4.数据由数据库管理系统统一管理和控制
(1)数据的安全性 保护:数据的安全性是指保护数据以防止不合法使用造成的数据泄密和破坏。
(2)数据的完整性 检查 :数据的正确性,有效性和相容性
(3) 并发控制
(4)数据库恢复
数据库是计算机系统内有 组织,大量,共享的数据的集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库进行统一的控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,并在故障后对数据库进行恢复。
数据模型
1.概念模型 :按用户的观点来对数据和信息建模,主要用于数据库设计。
基本概念: 实体,属性,主键,实体型(学生就是一个实体型),实体集(全体学生就是一个实体集),联系(一对一,一对多,多对多)
2.逻辑模型和物理模型
数据模型的组成要素
1.数据结构:数据库的组成对象以及对象之间的联系
2.数据操作
3.数据的完整性约束
数据库系统的三级模式结构
1.模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
2.外模式 :也称子模式或用户模式,他是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,数数据库用户的数据视图是与某一应用有关的数据的逻辑表示
3.内模式: 一个数据库只有一个内模式。他是物理结构和存储方式的描述,是数据库在数据库内部的组织方式。
数据库的二级映像功能
外模式/模式映像 : 应用程序是依据数据库的外模式编写的,从应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
模式/内模式映像 : 当数据库的存储结构改变时,由数据库管理员多模式/内模式映像做相应的改变,可以是模式保持不变,从而应用程序也不必改变。保证了数据与应用程序的物理独立性,
简称数据的物理独立性。
模式的定义和删除:
定义:create schema <模式名> authorization <用户名> (如果没有指定摸式名,那么隐含为用户名)
删除:drop schema <模式名> <cascade|restrict> (cascade 级联,表示在删除模式的同时把该模式中所有的数据库对象全部删除;restrict 限制,表示如果该模式中已经定义了下属的数据库对
象,则拒绝删该删除语句的执行。
基本表
定义
create table 表名(
<列名><数据类型>[列级完整性约束条件],
[表级完整性约束条件(eg: foreign key (外码) references 参照表 (参照表中被关联的码))]
);
修改:
alter table <表名>
add [column] <新列名><数据类型>[完整性约束]
add <表级完整性约束>
drop [column] <列名> [cascade|restrict]
drop constraint <完整性约束名> [restrict|cascade]
alter column <列名> <数据类型>
删除:
drop table <表名> [restrict|cascade]
建立索引:
create [unique|cluster] index 索引名 on 表名 列名 (unique: 表明此索引的每一个索引值都是唯一的数据记录; cluster 表明要建立的索引是聚簇索引)
修改索引:
alter index 旧索引名 rename to 新索引名
删除索引名:
drop index 索引名
聚集函数:
count()
sum() avg() max() min()
【注:】 where 子句中是不能用聚集函数作为条件表达式的
建立视图:
create view 视图名 列名 as 子查询 with check option (with check option 表示对视图进行update insert delete 操作时要保证增,删,改 的行满足视图定义中的谓词条件,即 子查询中的表达式。)
授予权限:
grant 权限 on 对象类型,对象名 to 用户 [ with grant option]; (如果指定了 with grant option子句,则获得某种权限的用户还可以把这种权限在授予其他用户。
并发控制的主要技术:封锁 ,时间戳,乐观控制法,多版本并发控制(对读脏数据,不可重复读,丢失修改)
封锁:
排他锁,又称写锁 X 锁 , 若事物T对数据对象A加上X锁,则只允许T读取和修改A,其他的任何事物都不能在对A加上任何类型的锁,直到T释放A上的锁为止,这就保证了其他事物在T释放A上的锁之前不能再读取和修改A 【控制读脏数据】
共享锁,又称读锁 S 锁 , 若事物T对数据对象A加上S锁,则事物T可以读A但是不能修改A,其他事物只能在对A加S锁,而不能加X锁,直到T释放S锁为止,这就保证了其他事物可以读A,但是在T释放A上的S锁之前不能对A做任何修改 【控制 丢失修改】
【控制可重读读 先加S锁 再加 X锁】