数据库原理(一)

数据库原理学习笔记

数据库系统的目标:

数据的冗余和不一致  data redundancy and inconsistency

数据库访问困难 difficulty inaccessing data

数据孤立 data isolation

完整性问题 integrity problem

原子性问题 atomicity problem

并发访问问题 concurrent-accessanomaly

安全性问题 security problem

 

 

数据视图:数据库系统的一个主要目的是给用户提供数据的抽象视图。

数据抽象:

物理层 physical level

逻辑层  logical level

视图层 view level

实例和模式:

特定时刻存储在数据库中的信息的集合称作数据库的一个实例(instance)。

数据库的总体设计称作数据库模式(schema)


 

 


数据模型 data model

一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合

关系模型(Relational model)关系模型用表的集合来表示数据和数据间的联系。

实体-联系模型(entity-relational model) 基于现实世界的这样一种认识:现实世界由一组称作实体的基本对象以及这些对象间的联系构成。

实体是现实世界可区别于其他对象的一件“事情”或一个“物体”。

基于对象的数据模型(object-baseddata model)

半结构化的数据模型(semistructureddata model)。

可扩展标记语言(eXtensible MarkupLanguage XML)被广泛的用来表示半结构化的数据)。

 

网状数据模型(network data model)和层次数据模型(hierarchical data model),先于关系模型出现。这些模型和底层的实现联系很紧密,并且使数据建模复杂化。

 

数据库语言:

数据定义语言data-definition language:用来定义数据库模式。

DDL:域约束domain constraint 。每个属性都必须对应与一个所有可能的取值构成的域(例如整数、字符型、日期/时间型)。

参照完整性(referentialintegrity)。一个关系中给定属性集上的取值也在另一关系的某一属性集的取值中出现。

断言 assertion.一个断言就是数据库需要时刻满足的某一条件。

授权 authorization。 读取权(read authorization),允许读取数据但是不能修改数据。插入权限(insertauthorization),允许插入新数据,但是不能修改读取数据;更新权限(updateauthorization),允许修改,但不能删除;删除权限(delete authorization),允许删除数据。

DDL的一些指令作为输入,生成一些输出。DDL的输出在数据字典(data dictionary)中,数据字典包含了元数据(metadata),元数据是关于数据的数据。可以把数据字典看作一种特殊的表,这种表只能由数据库系统本身来访问和修改。

数据操纵语言Data-Manipulation Language 。DML,使得用户可以访问或者操纵那些按照某种适当的数据模型组织起来的数据。

l  对存储在数据库中的信息进行检索

l  向数据库中插入新的信息

l  从数据库中删除信息

l  修改数据库中存储的信息

l  过程化DML(procedural DML)要求用户指定需要什么数据以及如何获取这些数据

l  声明式DML(declarative DML) (也称为非过程化DML)只要求用户指定需要什么数据,而不制定如何获得这些数据。

查询(query)要求对信息进行检索的语句。

 

关系数据库

使用一系列来表达数据以及这些数据之间的联系。

每个表有多个列,每个列有唯一的名字。

关系模型是基于记录的一个实例。

数据操纵语言:

查询语句:

Select instructor.name

From instructor

Where instructor.dept_name=’History’;

 

Select instructor.ID,department.dept_name

From instructor,department

Where instructor.dept_name=department.dept_nameand

Department.budget>95000;

数据定义语言

Create table department(dept_namechar(20),building char(15) budget numeric(12,2));

来自应用程序的数据库访问:

一种是通过应用接口(过程集),它可以用来将DML和DDL的语句发送给数据库,再取回结果。

与C语言一起使用的开放数据库连接(ODBC)标准,是一种常用的应用程序接口标准。

Java数据库连接JDBC标准为java语言提供了相应的特性。

另一种是通过扩展宿主语言的语法,在宿主语言的程序中嵌入DML调用。通常用一个特殊字符作为DML调用的开始,并且通过预处理器,称为DML预编译器(DML precompiler),来将DML语句转变成宿主语言中的过程调用。

 

数据库设计

设计过程

初始阶段是全面刻画预期的数据库用户的数据需求。为了完成这个任务数据库设计者有必要和领域专家、数据库用户广泛的交流。这个阶段的效果是制定出用户需求的规格文档。

下一步:

 设计者选择一个数据模型,并运用选定的数据模型的概念,将那些需求转换成一个数据库的概念模式。在这个概念设计(conceptual-design)阶段开发出来的模式提供了企业的详细概述。设计者再复审这个模式。。。。。。

  一个开发完全的概念模式将指出企业的功能需求。在功能需求说明(specification of functional requirements)中,用户描述数据之上的各种难过操作(或事务)。在概念设计阶段,设计课可以对模式进行复审,确保它满足功能需求。

最后两个设计阶段(将抽象数据模型转换到数据实现)。逻辑设计极端(logical –design phrase),设计者将高层的概念模式映射到要使用的数据库系统的实现数据模型上;然后设计者将得到的特定于系统的数据库模式用到物理设计阶段(physical-design phrase)中,在这个阶段中指定数据库的物理特性,这些特性包括文件组织的形式以及内部的存储结构。

DBMS Design Steps

–      RequirementsAnalysis: Discover what information needs to be stored,how the stored information will be used, etc. Taught in course on systemanalysis and design

–      ConceptualDatabase Design: High level description of data to bestored (ER model)

–      LogicalDatabase Design: Translation of ER diagram to arelational database schema (description of tables)

–      PhysicalDatabase Design: Done by the DB system

实体--联系模型

数据库中的实体通过属性集合来描述。例如,属性dept_name,building与budget可以描述大学中的一个系,并且他们组成了department实体集的属性。类似的,属性ID,name和salary可以描述instructor实体。

联系(relationship)是几个实体间的关联。例如member联系将一位教师和她所在的系关联在一起。同一类型的所有实体的集合称作实体集(entity set),同一类型的所有联系的集合称作联系集(relationship set)。

数据库的总体逻辑设计可以用实体-联系图(entity-relationship diagram,E-R图)进行图形化表示。

   最长用的方法就是采用统一建模语言(Unified Model Language.UML)。E-R图如下表示:

实体集用矩形表示,实体名在头部,属性名在下面。

联系集用连接一对相关的实体集的菱形表示,联系名放在菱形内部。

 

 

 

 

 

 

 

 

 


一个重要的约束是映射基数(mappingcardinality),它表示通过某个联系集能与一实体进行关联的实体数目。例如如果一位教师只能属于一个系,E-R模型就能表达出这种约束。

规划化:

设计关系数据库所用到的另一种方法是通常被称为规范化的过程。它的目标是生成一个关系模式集合,使我们存储信息式没有不必要的冗余,同时由能很轻易的检索数据。这种方法是设计一种符合适当的范式(normal form)的模式,为确定一个关系模式是否符合想要的范式,我们需要额外的关于用数据库建模的显式世界中机构的信息。最常用的方法是使用函数依赖(functional dependency)

 

 

 

这种要么发生要么不发生的要求称为原子性(atomicity)。这种正确性的要求称为一致性(consistency)。

这种保持的要求称作持久性(durability).

事务(transaction)是数据库应用中完成单一逻辑功能的操作集合。每一个事务是一个既具原子性由具一致性的单元。

原子性和持久性的保证是数据库系统自身的职责,确切的说,是恢复管理器(recovery manager)的职责。

事务完成成功是保持原子性很容易,但是发生故障时就难说了。因此在有些情况下要进行故障恢复(failure recovery),即检测系统故障时并将数据库恢复到故障发生以前的状态。

并发控制管理器(concurrency-controlmanager)控制并发事务间的相互影响。保证数据库一致性。

  事务管理器(transaction manager)包括并发控制管理器和恢复管理器。

数据挖掘(data mining)这个术语指的是半自动的分析大型数据库并从中找出有用的模式的过程。

人工智能中的知识发现(也称为机器学习(machinelearning))或者统计分析一样,数据挖掘试图从数据中寻找规则或模式。数据挖掘和机器学习不一样的地方:在于数据挖掘处理大量的主要存储在磁盘上的数据。数据挖掘在数据库中发现知识。

 

 

数据库的一个主要目标是从数据库中检索和往数据库中存储新信息。使用数据库的人员可以分为数据库用户和数据库管理员。

 

数据库用户和用户界面

 

无经验的用户。

应用程序员

老练的用户

专门的用户

 

 

 

数据库管理员

对系统进行集中控制的人称作数据库管理员(database administrator,DBA)

l  模式定义(schema definition)

l  存储结构及存取方法定义(storagestructure and access-method definition)

l  模式及物理组织的修改(schemaand physical – organization modification)

l  数据访问授权(grantingof  authorization for data access)

l  日常维护(routinemaintenance)

 

 参考资料:

《数据库系统概念》 Abraham Silberschatz等编著

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值