(完整版)数据库原理与应用重要知识点总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理与应用重要知识点总结
三级模式
模式:模式又称逻辑模式,是数据库中全体数据的整体逻辑结构和特征的描述。是所有用户的公共数据视图。
外模式:外模式又称为子模式或用户模式,是数据库用户能看见和使用的局部数据的逻辑结构和特征的描述。是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
内模式:内模式又称存储模式,是数据物理结构和存储方式的描述。是数据在数据库内部的表示方式。
两级映像
外模式/模式映像:对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式的对应关系。当模式改变时,由数据库管理员对各个外模式/模式映像做相应的修改,可以使外模式不变,保证了数据与程序的逻辑独立性——数据的逻辑独立性。
模式/内模式映像:一个数据库只有一个模式,也只有一个内模式。
这一映像是唯一的,用于定义数据全局逻辑结构与存储结构之间的对应关系。当数据库存储结构改变时,由数据库管理员对模式/内模式映像做相应的修改即可,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性——数据的物理独立性。
存取控制机制:
定义用户权限,并将用户权限存入数据字典中(这些定义被称为安全规则或授权规则)。
权限即用户对某一数据对象的操作权力。
合法性检查,当用户发出存取数据库操作的请求后,DBMS查找数据字典,根据安全规则进行合法性检查,若用户的请求超出了定义的权限/密级/角色,系统将拒绝执行此操作。
视图机制:
视图--虚表--导出表
为不同用户定义不同的视图,把数据对象限制在一定的范围。
通过视图机制把要保密的数据对无权操作的用户隐藏起来。
审计
系统提供的一种事后检查的安全机制。
建立审计日志,用以记录用户对数据库的所有操作。
检查审计日志,找出非法存取数据的人、时间和内容。
审计很浪费时间和空间,主要用于安全性要求较高的部门。
RBAC(基于角色的存取控制)role-based access control
特点:
由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。
灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。
强制存取控制MAC mandatory access control
强制存取控制是通过对敏感度标记进行控制的。
定义:每一个数据对象都被标以一定的密级,每一个用户也被授予某一级别的许可证,对于任意一个对象,只有具有合法许可证的用户才可以存取。
特点:严格,不是用户能够直接感知或进行控制的。
适用性:对数据有严格而固定密级分类的部门——军事部门,政府部门。
敏感度标记:绝密、机密、可信、公开
仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体。
仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体。
自主存取控制discretionary access control
定义:用户对不同的数据库对象有不同的权限,不同的用户对同一数据对象也有不同的权限,而且用户还可以将其拥有的存取权限转授给其他用户。
特点:非常灵活
权限控制三要素:用户、数据库对象、操作类型
数据库安全性:保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。
实现数据库安全性控制的常用方法和技术
用户身份鉴别:静态口令鉴别、动态口令鉴别、生物特征鉴别、智能卡鉴别
存取控制
视图机制
审计
数据加密
SQL的特点
1.综合统一
2.高度非过程化
3.面向集合的操作
4.以同一种语法结构提供两种使用方式(既是自含式语言,又是嵌入式语言)
5.语言简单,易学易用
SQL的功能和组成:
DDL(data definition language)
数据定义语言:数据定义功能
DML(data manipulation language)
数据操纵语言:数据查询、数据更新功能
DCL(data control language)
数据控制语言:数据控制功能
数据库完整性是指数据的正确性和相容性
1.实体完整性:主码唯一且主属性不为空值
2.参照完整性:外码或为空,或为对应主码的某个值
3.用户定义完整性:针对某一具体应用所涉及的数据必须满足的约束条件
DBMS的完整性控制机制应具有哪三方面的功能
1.定义功能
2.检查功能
3.违约处理功能
触发器
定义:触发器是提供给程序员和数据分析员来保证数据完整性的一种方法。
一个触发器有三部分组成:事件、条件、动作
NoSQL数据库:
键值数据库:Riak、Redis、Memcached、Amazon’s Dynamo、Project Voldemort
主要应用
GitHub(Riak)、BestBuy(Riak)、Twitter(Redis和Memcached)、StackOverFlow(Redis)、Instagram(Redis)、Youtube(Mencached)、Wikipedia(Memcached)
列存储数据库:Cassandra、Hbase、Hypertable、Amazon SimpleDB
主要应用
Ebay(Cassandra)、Instagram(Cassandra)、NASA(Cassandra)、Twitter(Cassandra and Hbase)
Facebook(Hbase)、Yahoo!(Hbase)
文档型数据库:MongoDB、CouchDB、RavenDB、OrientDB、Terrastore
主要应用:
SAP(MongoDB)、Codecademy(MongoDB)、Foursquare(MongoDB)、NBC News(RavenDB)
图形数据库:Neo4J、InfoGrid、Infinit Graph、OrientDB、HyperGraphDB、FlockDB
主要应用
Adobe(Neo4J)、Cisco(Neo4J)、T-Mobile(Neo4J)
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,它们是一个不可分割的工作单位。
原子性atomicity:事务是数据库的逻辑工作单元,事务中包括的诸操作要么都做,要么都不做,不可分割。
一致性consistecy:事务的执行结果必须使数据库从一个一致性状态转变到另一个一致性状态。
隔离性isolation:一个事务的执行不能被其他事务干扰。
持续性durability:一个事务一旦提交,它对数据库中数据的改变就应该是永久的,接下来的其他操作或故障不应该对其执行结果有任何影响。
ACID
故障的种类:事物内部故障、系统故障——软故障、介质故障——硬故障、计算机病毒
事物内部故障:
余额不足
运算溢出
并发事务发生死锁
违反完整性约束
系统故障:
造成系统停止运行的任何事件,系统必须重新启动
1.特定类型的硬件错误
2.CPU故障
3.操作系统故障
4.DBMS代码错误
5.停电
介质故障:
系统外存故障,破坏性最大
1.磁盘损坏
2.磁头碰撞
3.瞬间强磁场干扰
计算机病毒:
是一种人为的故障或破坏
1.破坏数据
2.破坏系统
故障对数据库的影响:
1.数据库本身的破坏,数据不可访问。介质故障、病毒
2.数据库可以访问,但数据不正确。事物内部故障、系统故障、病毒