一.数据与信息
1.数据+有用性=信息 2.数据的三个属性: ①类别性:每类数据都有很多杂项,构成一个数据集。 ②有用性。 ③语义性:数据有其特定的含义。
二.数据库及其特性
1.数据库(Database)的由来
(1)数据具有分散性。 (2)数据的发布者(源头),数据的使用者(用户)是一种一对多的关系。
问题: a.发布者:更新费时费力,数据不一致; b.使用者:可靠性问题。
2.数据库概念
(1)特点: 数据库中一个数据只存一份,而不是每个用户都存储一份。 (2)好处: 提高数据的共享性、真实性,降低数据存储、管理成本,提高数据利用率。 (3)数据库的基本特征: a.数据按一定的数据模型组织、描述和储存; b.可为各种用户共享; c.冗余度较小; d.数据独立性较高; e.易扩展。
三.数据库系统的组成及其结构特性
1.两类数据模型
(1)概念模型(信息模型)
a.按用户的观点来对数据和信息建模,主要用于数据库设计。 b.概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰、易于用户理解。
A.基本概念: ①实体(Entity):客观存在并可相互区别的事物,可看做是一个类; 例如:一个学生,一门课,一次订货等。 ②属性(Attribute):实体所具有的某一特性。 一个实体可以由若干个属性来刻画,但是属性是单一的,即属性不能再有自己的属性; 例如:学生实体可由学号、姓名、性别、出生年月等属性组成。 ③码(Key):唯一标识实体的属性集。 例如:学号是学生实体的码。 ④实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体。 例如:学生(学号,姓名,性别,出生年月)就是一个实体型。 ⑤实体集(Entity Set):同一类型实体的集合。 例如:全体学生。 ⑥联系(relationship):在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
a.实体内部的联系:指组成实体的各属性之间的联系; b.实体之间的联系:指不同实体集之前的联系; c.实体之间的联系有一对一、一对多、多对多等多种类型。
B.一种表示方法:实体-联系方法 该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。
在E-R图中有四个成分: a.矩形框:表示实体,在框中记入实体名。 b.菱形框:表示联系,在框中记入联系名。 c.椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下画一下划线。 d.连线:实体与属性之间、实体与联系之间、联系与属性之间用直线相连,并在直线上标注联系的类型。
- 一对一的联系:在两实体连线方向各写1;
- 一对多的联系:要在一的一方写1,多的一方写N;
- 多对多的联系:在两个实体连线方向各写N、M。
(2)实例 层次结构:数据库 -> 表 -> 行和列。 (3)逻辑模型和物理模型 ①逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。 ②物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
2.数据库的特点
(1)数据库由表(Table)组成,表包括模式(Schema)和数据(Data)。 (2)数据库是一个企业的数据的集合,所有用户的数据都存放在数据库中,数据库中的数据时海量的,具有共享性。 (3)数据在数据库中的组织,并不是用户数据的原样照本存储,而是要严格按类概念,分类存储。 数据有类的概念,一个类对应一张表,一张表对应一个类,同类数据都存储在同一张表中。 数据对应于客观事物,类属于抽象概念的范畴,而数据时实例。 一个实例对应表中的一行数据,表中的一行数据对应于一个实例。 (4)一个数据只存一份。 (5)类与类之间具有关系 -> 实例与实例之间具有关系。 (6)用户所需数据:对多个表中的数据进行组合。
四.数据库技术
1.对数据库的访问—数据操作
(1)数据用户和数据库之间形成了多对一的关系。用户要和数据库进行交互,对数据库中的数据进行操作: ①添加数据(Insert) ②查找数据(query) ③修改数据(update) ④删除数据(delete) ⑤统计数据(statistics) (2)数据库中的数据操作特征 数据库管理系统对外提供数据库访问语言,用户可以指定数据库的某个表,以行(Row)为单元执行添加操作、删除操作、修改操作、查询操作、统计操作。 (3)数据操作的表达:SQL SQL语言:对于关系型数据库,国际标准数据操作语言。 ①模式定义语句:
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>; 例如: 为用户WANG定义一个学生-课程模式S-T: CREATE SCHEMA “S-T” AUTHORIZATION WANG;
用户也可以在创建模式的同时在这个模式定义中进一步创建基本表、视图,定义授权:
CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<表定义子句> | <视图定义子句> | <授权定义子句>]; 例如: 为用户ZHANG创建一个模式TEST,并且在其中定义一个表TAB1。 CREATE SCHEMA TEST AUTHORIZATION ZHANG CREATE TABLE TAB1(COL1 SMALLINT,COL2 INT,COL3 CHAR(20),COL4 NUMERIC(10,3),COL5 DECIMAL(5,2));
①插入记录:
INSERT INTO student VALUES (‘200803024’,‘周艳’,‘女’,‘1989/01/22’);
②修改记录:
UPDATE student SET birthdate=DATE‘1991-03-15’ WHERE studentNo=‘2008043332’;
③删除记录:
DELETE FROM student WHERE studentNo like ‘2007%’;
④查找记录:
SELECT name,phone FROM student WHERE nation <> ‘汉’;
⑤统计:
SELECT sex,COUNT(*) FROM student GROUP BY sex;
2.数据库管理系统(DBMS)
(1)DBMS的三级模式(Schema)架构 三级模式结构及二级映像实现了数据库系统的数据独立性。
3.数据库应用程序
(1)数据库模式中,数据的用户并不直接与DBMS交互,而是要通过数据库应用程序(Database Application)来完成。 (2)数据库应用程序的三个功能: ①为用户提供表达数据操作的界面; ②以SQL语言表达数据操作,向数据库服务器发出请求; ③显示用户所做数据操作的执行结果。 (3)不同的用户关注不同的数据,因此数据库应用程序和DBMS之间形成多对一的关系。
4.数据库系统的架构
(1)数据库、数据库管理系统、数据库应用程序三者结合起来构成数据库系统(Database System)或者Management Information System,MIS系统,或者信息系统、网站、门户。 (2)存储数据库并运行DBMS的计算机叫数据库服务器(Database Server)。 (3)系统架构特点:相互独立性,可组合性 (4)数据库系统的基本特征 ①各种各类的数据将集中到数据库中,统一管理,实现共享。 ②基本特征:数据库的拥有者相对明确,数据库的用户则在不断扩增,难以事先预测。 ③用户建立的数据库应用程序也希望具有通用性,能够对不同的数据库进行访问。 ④数据库管理系统、数据库应用程序即具有相互独立性,又具有可对接性,构成联邦式系统。这要求建立统一的数据库访问标准和规范。DBMS开发厂家和数据库应用程序开发商。 ⑤数据库访问标准和规范:关系数据模型,数据操作表达语言,数据库访问编程接口。 (5)数据库系统架构特征 ①分层 每层提供的服务接口国际标准化; 数据操作表达的标准化; 编程接口的标准化。 ②模块化 模块化,可组装性。
5.数据库技术要解决的五个工程问题
①数据正确性问题; ②数据完整性问题; ③数据操作简单性问题; ④数据安全问题; ⑤数据处理性能问题。
五.数据库领域的从业人员
1.DBMS设计开发人员
2.数据库设计人员
(1)为企业设计数据库。从企业的业务、组织、人员、运作方式、外部环境、历史渊源和发展态势中提炼出企业的数据定义,清理出数据之间的关系,然后任用数据库设计方法定义出数据库中的表,标示出数据完整性控制的具体规则。 (2)数据库设计是数据库系统成功与否的关键。糟糕的数据库设计必是后患无穷,其隐含的问题随后表现为: ①业务需求不能得到满足; ②时常发生数据丢失,数据操作被无故抵否,数据不正确,数据不一致; ③出现新业务或业务变动时,系统适应性差。 (3)目前,数据库系统开发的成功率很低,不到20%。
3.数据库系统管理人员DBA
(1)负责数据库系统的日常维护,确保数据库的安全、可靠、可用。 (2)具体职责包括: ①数据库服务器的建立和配置; ②用户管理; ③安全管理; ④数据库访问审计; ⑤系统扩展与升级; ⑥数据备份,故障恢复; ⑦性能优化。
4.数据库应用程序开发人员
(1)数据库应用程序开发人员的主要工作是满足数据库用户的业务需求,为他们设计和开发出数据库应用程序。 (2)数据库应用程序设计与开发中,首要的宗旨有四条: ①界面规范友好,要求数据组织结构清晰,层次分明,表达简洁,符合习惯,操作简单方便。 ②程序组织方面,要模块化,层次化。 ③在可靠性和稳定性方面,凡是跨进程的调用都要检查是否成功,不成功要告知用户,并作恰当处理。 ④在通用性方面,尽量采用标准技术,通用架构,符合标准规范,少用专有的东西。
六.数据库技术发展史
1.第一代的网状、层次型数据库系统
(1)通用电气公司采用数据模型研制了IDS系统。 (2)IBM采用层次数据模型研制IMS系统。 (3)层次模型采用树结构组织数据,网状模型对应的是有向图。这两种数据库都用存取路径来表示数据之间的关系。导航式的数据查询和定位为其基本特征。
2.第二代的关系型数据库系统
(1)IBM开发了System R,导致了SQL出现。 (2)1983年,SQL称为ANSI标准,1984年成为ISO标准。 (3)James Gray提出了事务处理概念,解决可靠性问题。 (4)微软1992推出ODBC,Sun公司1994推出了JDBC。 (5)1976年,Chen提出了基于实体-关系建模的数据库设计方法。 (6)关系模型,事务处理,数据库设计方法,SQL,ODBC/JDBC是数据库技术发展的标志性成果,也是数据库技术的核心内容。
3.第三代的以面向对象模型为主要特征的数据库系统
(1)产生于20世纪80年代。 (2)第三代数据库保持和继承了第二代数据库系统的技术,支持面向对象的数据模型,并和分布处理技术、并行计算技术、多媒体技术、人工智能技术等诸多新技术相结合,广泛应用于地理信息服务、电子商务、网络搜索、决策支持等诸多领域。 (3)分布式数据库、并行数据库、多媒体数据库。
4.第四代以分布式处理、互联网应用为特征的大数据技术
(1)云原生数据库 数据库云化之后,具有经济性,方便性,可靠性,稳定性,标准性,专业性,辐射性。
5.目前流行的DBMS产品
(1)Oracle:大型DBMS,应用于商业,政府部门。运行稳定,性能优越,吞吐量大,处理大批量的数据,数据安全性与数据完整性控制。价格昂贵。 (2)Microsoft的SQL Server:Windows平台上,大众化的DBMS,应用于中小型企业。事务处理功能,数据导出/导入功能。多种版本。 (3)IBM公司的DB2:开源的DBMS,价格昂贵,应用于银行、保险等可靠性要求很高的行业和领域。 (4)MySQL:开源的DBMS。体积小、性能高、可靠性好、成本低,被广泛应用于Internet上的中小型网站上。
6.国产DBMS产品
(1)天津南大通用数据技术股份有限公司,GBASE,金融、电信。 (2)武汉达梦数据库有限公司,DM数据库。 (3)北京人大金仓信息技术股份有限公司,KingbaseES,质监,审计等行业。 (4)神通数据库、SequoiaDB数据库,Hubble数据库等。 (5)腾讯,基于MySQL研发了TDSQL时序数据库。 (6)华为,基于PosgreSQL,研发了GaussDB数据库。 (7)阿里巴巴,研发了OceanBase数据库,支撑支付宝业务;以及PolarDB数据库。
|