数据模型
数据模型是对现实世界数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。现有的数据库系统均是基于某种数据模型的。
根据模型应用的不同目的,数据模型分为两类:概念模型、逻辑模型和物理模型。概念模型是按用户的观点来对数据和信息建模,主要用于数据库设计。第二类逻辑模型主要包括关系模型、层次模型、网状模型、层次模型、面向对象数据模型和对象关系模型、半结构化模型等。其中关系模型是最重要的一种数据模型。
从数据库应用开发人员角度看,数据库系统通常采用三级模式结构(外模式、模式、内模式)。从最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户-服务器、浏览器-应用服务器/数据库服务器多层结构等。这是数据库外部的体系结构。
常用数据库以及模型
- MySQL 小型关系型数据库管理系统,适用于中小型网站
- Oracle 一种大型关系数据库系统,一般用于商业、政府机关等。能处理大批量的数据。
- SQL Server 关系数据库管理系统。有微软和Sybase两家
- DB2 IBM的一系列关系型数据库管理系统,主要应用于大型应用系统。对大型分布式应用系统尤为适用。
- Informix IBM出品的关系数据库管理系统家族。
- Sybase 关系型数据库,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的代行数据库系统。
- PostgreSQL 一种特性非常齐全的自由软件的对象-关系型数据库。
- MongoDB 跨平台、高性能、开源、无模式的文档型数据库。
- NoSQL 泛指非关系型数据库,如Redis、HBase、MongoDB、CouchDB等。
关系数据库
关系模型的数据结构非常简单,只包含单一的数据结构——关系。关系的每一个分类必须是一个不可分的数据项,即不允许表中有表,一列只能有一个head。行和列的顺序无所谓,可以任意交换。
一些概念
R(D1,D2,……Dn)
- R表示关系的名字,n是关系的目或度(degree),即列长度
- 表的每行对应一个元组,表的每列对应一个域。
- 候选码:若关系中的某一属性组可以唯一表示一个元祖而其子集不能,则称该属性组为候选码。
- 主码/主键(Primary Key):选定一个候选码作为唯一标识。
关系数据库标准语言SQL
结构化查询语言是关系数据库的标准语言,也是一个通用的、功能极强的关系数据库语言,可以实现数据库模式创建、数据库数据的增删改查、数据库安全性完整性定义与控制等一系列功能。
数据定义
操作对象 | 创建 | 删除 | 修改 |
---|---|---|---|
模式 | CREATE SCHEMA | DROP SCHEMA | |
表 | CREATE TABLE | DROP TABLE | ALTER TABLE |
视图 | CREATE VIEW | DROP VIEW | |
索引 | CREATE INDEX | DROP INDEX | ALTER INDEX |
一个关系数据库管理系统的实例中可以创建多个数据库,一个数据库中可以建立多个模式,一个模式下通常包含多个表、视图和索引等数据库对象。当表的数据量比较大时,查询操作会比较耗时,建立索引是加快查询速度的有效手段。
1 | CREATE SCHEMA <模式名> AUTHORIZATION <用户名> //也可以在后面继续创建表、视图等 |
数据查询与操作SQL
1 | //表的查询 |