概念
数据库(Database)是按照一定的数据结构来组织、存储和管理数据的仓库,通俗来讲就是存储数据的仓库。
数据库发展
数据处理量日益增加,产生了数据管理技术。
数据管理技术的发展经历了以下四个阶段:人工管理阶段、文件系统阶段、数据库阶段和高级数据库技术阶段。
1.人工管理阶段:
硬件设备简单,软件方面没有操作系统。
缺点:
-
计算机系统不提供对用户数据的管理功能,需要用户自己编制程序。
-
数据不能共享
-
不能单独保存数据,数据要与相应程序一起保存。
2.文件系统阶段:
数据以文件为单位存储在外存中,且由操作系统统一管理,数据仍然面向程序,数据与程序的依赖性强。
缺点:
-
数据没有集中管理
-
数据维护麻烦
-
数据的组织仍然是面向程序,数据与程序的依赖性强
3.数据库系统阶段:
采用数据模型表示复杂的数据结构,对数据进行统一管理和控制,数据和程序独立。
常见数据库
-
Oracle:超大型数据库,收费,1979 年,Oracle(甲骨文)公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。
-
DB2:超大型数据库,收费 IBM(国际商用机器)在1977年完成了System R系统的原型,1980年开始提供集成的数据库服务器 System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。在1983年推出DB2 forMVSV1 。
-
SQL Server:大型数据库,商用收费 1987 年,微软和IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了 OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 1.0 版。
-
MySQL:免费数据库mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收 购,2009年4月20日甲骨文以现金收购Sun微系统公司。
-
Sybase:Sybase公司成立于1984年,公司名称“Sybase”取自“system”和“database” 相结合的含义。
-
Access:美国Microsoft公司于1994年推出的微机数据库管理系统。
总结来说:
-
Oracle:超大型数据库,收费
-
DB2:超大型数据库,收费
-
SQL Server:大型数据库,商用收费
-
MySQL:小型数据库,免费
-
Access:小型数据库
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据工具。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
现在我们流行使用关系型数据库管理系统。
管理系统
数据库管理系统(DBMS)是一种操纵和管理数据库的大型软件,它按一定的数据模型组织数据。
其集数据定义功能(定义数据库中的数据对象)、数据操作功能(现对数据的追加、删除、更新、查询等操作)、数据完整性、数据库安全保护功能、数据库的并发控制功能、数据库系统的故障恢复功能、在⽹络环境下访问数据库功能于一身,并提供⽅便有效的存储数据信息的接⼝和⼯具。
关系型数据库管理系统RDBMS是SQL的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsof t Access。
RDBMS中的数据存储在被称为表(tables)的数据库对象中。表是相关的数据项的集合,它由列和行组成。
数据库系统
数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们硬件平台、软件平台和与数据库有关人员一起构成一个完整的数据库系统(DBS)。
对数据增加修改查询删除是程序员的基本功,数据库系统管理员(DBA ,Database Administrator)
通过提供的工具对数据库进行管理,包括数据库设计,权限控制
数据模型
数据库的系统模型,简称数据模型,为数据库系统的信息表式与操作提供了一个抽象的框架,一般采用的数据模型主要有三种:层次模型、网状模型和关系模型。
(1)层次数据模型:以树形层次结构组织数据的数据结构模型。
①优点:结构简单、清晰、明朗,很容易看到各个实体之间的联系;操作层次数据类型的数据库语句比较简单,只需要⼏条语句就可以完成数据库的操作;查询效率较高,检索关键属性十分方便;数据修改和数据库扩展容易实现;
②缺点:结构呆板,缺乏灵活性;现实世界中很多联系是非层次性的;查询节点的时候必须知道其双亲节点,对插入和删除操作的限制比较多;数据不得不纵向向外扩展,节点之间很难建立横向关联;
(2)网状数据模型:用有向图表示实体和实体之间的联系的数据结构模型。
①优点:很方便的表示现实世界中的很多复杂的关系;修改数据时,没有层次数据模型的那么多的严格限制,可以删除一个节点的父节点而依旧保留该节点;也允许插入一个没有任何父节点的节点;实体之间的关系在底层中可以借由指针指针实现,因此在这种数据库中的执行操作的效率较高;
②缺点:结构复杂,使用不易,随着应用环境的扩大,数据结构越来越复杂,数据的插入、删除牵动的相关数据太多,不利于数据库的维护和重建。
(3)关系数据模型:使用二维表格(关系表)表示实体和实体之间关系的数据模型。
①优点:非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;数据表之间相对独立,增加,删除不影响其他数据表;可以根据多个数据表之间的关联性,进行多表的操作。
②缺点:为了维护一致性所付出的巨大代价就是其读写性能比较差。
关联数据模型的结构
关系模型由关系数据结构 、关系操作集合 、关系完整性约束三部分组成。
关系型数据结构中,数据是用二维表格的形式来组织的,关系操作集合有增加、删除,修改,查询(增删改查),并、交等。
三种完整性约束:实体完整性 、参照完整性以及用户定义完整性。
实体完整性:实体完整性是指实体的主属性不能取空值,例如区分人的身份证,区分学生的学号;
参照完整性:关系中不允许引用不存在的实,例如学生不能在没有的班级;
用户自定义完整性:用户定义完整性是针对某一个具体关系的约束条件,不同的应用有着不同的具体要求,这些约束条件就是用户根据需要自己定义的。例如性别取值范围为男、女。
关联数据模型的结构
关系模型由关系数据结构 、关系操作集合 、关系完整性约束三部分组成。
关系型数据结构中,数据是用二维表格的形式来组织的,关系操作集合有增加、删除,修改,查询(增删改查),并、交等。
三种完整性约束:实体完整性 、参照完整性以及用户定义完整性。
-
实体完整性:实体完整性是指实体的主属性不能取空值,例如区分人的身份证,区分学生的学号;
-
参照完整性:关系中不允许引用不存在的实,例如学生不能在没有的班级;
-
用户自定义完整性:用户定义完整性是针对某一个具体关系的约束条件,不同的应用有着不同的具体要求,这些约束条件就是用户根据需要自己定义的。例如性别取值范围为男、女。
RDBMS专业术语
数据库: 数据库存储数据表的集合。(database)
数据表: 存储数据内容,是数据的矩阵,类似于电子表(table)
列: 数据元素包含了相同类型的数据。(column)
行:或记录一组相关的数据。(row)
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。(primary key)
外键:外键用于关联两个表。(foreign key)
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引
索引:使用索引可快速访问数据库表中的特定信息。类似于书籍的目录
查询: 使用特定的条件来查找特定的数据
记录(元组):表中的一行
字段(属性):表中的一列
域:属性的取值范围比如性别:男,女
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
关系型数据库语言SQL
SQL结构化查询语言 (Structured Query Language) ,数据库主要是sql语句的用法,类似于操作系统命令。
用途
SQL可以创建数据库、数据表、视图、索引和存储过程等多种数据库对象,以及面向数据库数据表中数据的增删查改等操作,还可以设置表、视图和存储过程的访问权限。
在SQL中,”双引号”和'单引号'都用于表示字符串,除了在字符串中的字符,其余SQL语句都不区分字母大小写。 “#”和“--”为单行注释,“/* */”为多行注释。
分类
①数据定义语言DDL:
数据定义语言DDL用来创建数据库中的各种对象:表、视图、 索引等。
-
CREATE DATABASES
-
CREATE TABLE
-
CREATE VIEW
-
CREATE INDEX
②数据操纵语言DML:
-
插入:INSERT
-
更新:UPDATE
-
删除:DELETE
③数据查询语言DQL:
-
基本结构 SELECT <字段名表>
-
FROM <表或视图名>
-
WHERE <查询条件>
④数据控制语言DCL:
-
COMMIT:提交
-
ROLLBACK:回滚,配合DML使用
-
GRANT:授权(一般DBA使用)