一.数据与信息
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数据库。