数据库系统
数据库系统(DataBase System,缩写为DBS)是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)和软件平台(软件)5部分构成的运行实体。
数据模型
层次模型
用树形结构表示实体类型及实体间联系的数据模型称为层次模型
网状模型
用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。用网状模型编写应用程序极其复杂,数据的独立性较差。
关系模型【重点】
以二维表来描述数据。关系模型中,每个表有多个字段列和记录行,每个字段列有固定的属性(数字、字符、日期等)。关系模型数据结构简单、清晰、具有很高的数据独立性,因此是目前主流的数据库数据模型。
关系模型的基本术语如下:
关系:一个二维表就是一个关系。
元组:就是二维表中的一行,即表中的记录。
属性:就是二维表中的一列,用类型和值表示。
域:每个属性取值的变化范围,如性别的域为{男,女}。
关系中的数据约束如下:
实体完整性约束:约束关系的主键中属性值不能为空值。
参照完整性约束:关系之间的基本约束。
用户定义的完整性约束:它反映了具体应用中数据的语义要求。
规范化关系数据库
关系数据库的规范化理论为:关系数据库中的每一个关系都要满足一定的规范。
(1)第一范式(1NF)
在一个关系中,消除重复字段,且各字段都是最小的逻辑存储单位。
(2)第二范式(2NF)
若关系模型属于第一范式,则关系中每一个非主关键字段都完全依赖于主关键字段,不能只部分依赖于主关键字的一部分。
(3)第三范式(3NF)
若关系属于第一个范式,且关系中所有非主关键字段都只依赖于主关键字段,第三范式要求去除传递依赖。
设计关系数据库
数据库设计是指对于一个给定的应用环境,根据用户的需求,利用数据模型和应用程序模拟现实世界中该应用环境的数据结构和处理活动的过程。
数据库设计原则如下:
(1)数据库内数据文件的数据组织应获得最大限度的共享、最小的冗余度,消除数据及数据依赖关系中的冗余部分,使依赖于同一个数据模型的数据达到有效的分离。
(2)保证输入、修改数据时数据的一致性与正确性。
(3)保证数据与使用数据的应用程序之间的高度独立性。
数据库
数据库(DataBase)是按照数据结构来组织、存储和管理数据的仓库,是存储在一起的相关数据的集合。
优点:
1.减少数据的冗余度,节省数据的存储空间
2.具有较高的数据独立性和易扩充性
3.实现数据资源的充分共享
常用数据库对象
在SQL Server 2012的数据库中,表、视图、存储过程和索引等具体存储数据或对数据进行操作的实体都被称为数据库对象。
(1)表
表是包含数据库中所有数据的数据库对象,是SQL Server数据库中最重要的逻辑对象。它由行和列组成,用于组织和存储数据。
(2)字段
表中每列称为一个字段,字段具有自己的属性,如字段类型、字段大小等,其中字段类型是字段最重要的属性,它决定了字段能够存储哪种数据。
SQL规范支持5种基本字段类型:字符型、文本型、数值型、逻辑型和日期时间型。
(3)索引
索引是一个单独的、物理的数据库结构。它是依赖于表建立的,在数据库中索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需的数据。
(4)视图
视图是从一张或多张表中导出的表(也称虚拟表),是用户查看数据表中数据的一种方式。表中包括几个被定义的数据列与数据行,其结构和数据建立在对表的查询基础之上。视图中保存的不是数据,而是表的查询语句select。
(5)存储过程
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集合(包含查询、插入、删除和更新等操作),经编译后以名称的形式存储在SQL Server服务器端的数据库中,由用户通过指定存储过程的名字来执行。当这个存储过程被调用执行时,这些操作也会同时执行。
数据库组成部分
SQL Server 2012数据库主要由文件和文件组组成。数据库中的所有数据和对象(如表、存储过程和触发器)都被存储在文件中。
(1)文件
文件主要分为3种类型:
主要数据文件:存放数据和数据库的初始化信息。每个数据库有且只有一个主要数据文件,默认扩展名是.mdf。
次要数据文件:存放除主要数据文件以外的所有数据文件。有些数据库可能没有次要数据文件,也可能有多个次要数据文件,默认扩展名是.ndf。
事务日志文件:存放用于恢复数据库的所有日志信息。每个数据库至少有一个事务日志文件,也可以有多个事务日志文件,默认扩展名是.ldf。
主要数据文件和事务日志文件是自动生成的
(2)文件组
文件组是SQL Server 2012数据文件的一种逻辑管理单位,它将数据库文件分成不同的文件组,方便于对文件的分配和管理。
文件组主要分为2种类型:
主文件组:包含主要数据文件和任何没有明确指派给其它文件组的文件。系统表的所有页都分配在主文件组中。
用户定义文件组:主要是在CREATE DATABASE或ALTER DATABASE语句中,使用FILEGROUP关键字指定的文件组。
每个数据库中都有一个文件组作为默认文件组运行,默认文件组包含在创建时没有指定文件组的所有表和索引的页。在没有指定的情况下,主文件组作为默认文件组。