什么是关系型数据模型
关系型数据库简而言之就是使用关系或二维表存储信息。
关系型数据库设计人员通过使用实体关系模型进行数据库建模。
例如人员信息表可以分为员工表和部门表,通过部门编号进行关联,使得获取和维护数据变得容易,这就是关系型数据模型。
它的3个关键组件分别为:
- 实体:需要了解的信息,比如部门和员工信息;
- 属性:一般也成为列或字段,描述实体必须火可选的信息,比如员工表中的工号和姓名等;
- 关系:实体之间指定的关联,比如员工的部门编号关联到了部门表的编号属性。
数据库系统范式
- 第一范式(1NF):字段必须具有单一数据特性,不可再拆分;
- 第二范式(2NF):表要具有唯一性的主键列;
- 第三范式(3NF):表中的字段不能包含在其他表中已出现的非主键字段。
关系型数据库管理系统
关系型数据库管理系统,简称DBMS,是基于关系型数据库理论而开发的软件系统。目前比较热门的关系型数据库管理系统有:Oracle、Microsoft SQL Server、Access、MySQL、PostgreSQL等。
一个数据库管理系统通常要提供以下几项功能:
- 定义数据库结构:DBMS提供数据定义语言(DDL)来定义数据库结构,用来搭建数据库框架,并被保存在数据字典中。
- 存取数据库内容:DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作,即检索、插入、修改和删除等。
- 数据库的运行管理:DBMS提供数据控制功能,即数据的安全、完整性和并发控制等,对数据库运行进行有效的控制和管理,以确保数据正确有效。
- 数据库的建立和维护:包括数据库初识数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
- 数据库的传输:DBMS提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。
使用SQL语句与数据库管理系统通信
关系型数据库管理系统提供了SQL语言,允许用户操纵数据库。SQL语言的全称是结构化查询语言(Structured Query Language),是高级的非过程化编程语言,允许用户在高层数据结构上工作。
SQL语言主要分为:
- DML数据操纵语言,主要是完成数据的增、删、改、查的操作。
- DDL数据定义语言,主要用来创建和修改表、视图、存储过程及用户等。
- DCL数据控制语言。
Oracle体系结构
一个Oracle数据库服务器包括如下两个方面:
- 存储Oracle数据的物理数据库,即保存Oracle数据库数据的 一系列物理文件,包含控制文件、数据文件、日志文件和其他文件。
- Oracle实例:这是物理数据库和用户之间的一个中间层,用来分配内存,运行各种后台进程,这些分配的内存区和后台进程统称为Oracle实例。
当用户在客户端连接并使用数据库时,实际上是连接到该数据库的实例,由实例来连接、使用数据库。
比较Oracle数据库与SQL Server数据库
Oracle的体系结构与SQL Server有着本质上的不同。
Oracle数据库系统是一个跨平台的数据库管理系统,可以运行在Windows、UNIX、Linux等操作系统上,而SQL Server只能运行与微软的操作系统平台。
在SQL Server中,当用户使用企业管理器连接到某个SQL Server实例后,可以同时管理多个数据库。这是因为SQL Server中,实例就是SQL Server服务器引擎,每个引擎都有一套不为其他实例共享的系统及数据库,因此一个实例可以建多个数据库。
在Oracle中,实例是由一系列的进程和服务组成的,与数据库可以是一对一的关系,也就是说一个实例可以管理一个数据库;也可以是多对一的关系,也就是说多个实例可以管理一个数据库,其中多个实例组成一个数据库的架构成为集群,简称为RAC(Oracle Application Clusters)。
在文件存储、日志管理、方案管理、事务处理、安全性管理等方面,两者都存在非常大的区别,这里先不详细说了。