一.SQL Server数据库系统概述
1.组成数据库系统的主要部分:
数据库系统(DataBase System,缩写为DBS)是采用数据库技术的计算机系统,是由数据库(DB)、数据库管理系统(DBMS)、数据库管理员(DBA)、硬件平台(硬件)和软件平台(软件)5部分构成的运行实体。
数据库管理员(DataBase Administrator,缩写为DBA)是对数据库进行规划、设计、维护和监视等的专业管理人员,在数据库系统中起着非常重要的作用
2. 认识数据模型
数据模型是数据库系统的核心与基础,是关于描述数据与数据之间的联系、数据的语义、数据一致性约束的概念性工具的集合。 数据模型通常是由数据结构、数据操作和完整性约束3部分组成的,分别如下:
数据结构:是对系统静态特征的描述,描述对象包括数据的类型、内容、性质和数据之间的相互关系。
数据操作:是对系统动态特征的描述,是对数据库各种对象实例的操作。
完整性约束:是完整性规则的集合,它定义了给定数据模型中数据及其联系所具有的制约和依存规则。
常用的数据模型有三种:层次模型 网状模型 关系模型
(1)层次模型:用树形结构表示实体类型及实体间联系的数据模型称为层次模型,具有以下特点: 每棵树有且仅有一个无双亲结点,称为根。 树中除根外所有结点有且仅有一个双亲
(2)网状模型:用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。用网状模型编写应用程序极其复杂,数据的独立性较差
(3)关系模型:以二维表来描述数据。每个表有多个字段列和记录行,每个字段列有固定的属性(数字、字符、日期等)。关系模型数据结构简单、清晰、具有很高的数据独立性,因此是目前主流的数据库数据模型。
关系模型的基本术语如下:
关系:一个二维表就是一个关系。
元组:就是二维表中的一行,即表中的记录。
属性:就是二维表中的一列,用类型和值表示。
域:每个属性取值的变化范围,如性别的域为{男,女}。
关系中的数据约束如下:
实体完整性约束:约束关系的主键中属性值不能为空值。
参照完整性约束:关系之间的基本约束。 用户定义的完整性约束:它反映了具体应用中数据的语义要求。
3.关系数据库的规范化理论为:关系数据库中的每一个关系都要满足一定的规范。根据满足规范的条件不同,可以分为5个等级:第一范式(1NF)、第二范式(2NF)、……、第五范式(5NF)。其中,NF是Normal Form的缩写。一般情况下,只要把数据规范到第三范式标准就可以满足需要了。
(1)第一范式(1NF) 在一个关系中,消除重复字段,且各字段都是最小的逻辑存储单位。
(2)第二范式(2NF) 若关系模型属于第一范式,则关系中每一个非主关键字段都完全依赖于主关键字段,不能只部分依赖于主关键字的一部分。
(3)第三范式(3NF) 若关系属于第一个范式,且关系中所有非主关键字段都只依赖于主关键字段,第三范式要求去除传递依赖。
4.数据库设计原则如下。
(1)数据库内数据文件的数据组织应获得最大限度的共享、最小的冗余度,消除数据及数据依赖关系中的冗余部分,使依赖于同一个数据模型的数据达到有效的分离。
(2)保证输入、修改数据时数据的一致性与正确性。
(3)保证数据与使用数据的应用程序之间的高度独立性
5.实体间的关系:
一对一关系:是指表A中的一条记录在表B中有且只有一条相匹配的记录。在一对一关系中,大部分相关信息都在一个表中。 一对多关系:是指表A中的行可以在表B中有许多匹配行,但是表B中的行只能在表A中有一个匹配行。
多对多关系:是指关系中每个表的行在相关表中具有多个匹配行。在数据库中,多对多关系的建立是依靠第3个表(称作连接表)实现的,连接表包含相关的两个表的主键列,然后从两个相关表的主键列分别创建与连接表中的匹配列的关系
二.SQL Server数据库概述
数据库(DataBase)是按照数据结构来组织、存储和管理数据的仓库,是存储在一起的相关数据的集合。其优点主要体现在以下几方面:
减少数据的冗余度,节省数据的存储空间
具有较高的数据独立性和易扩充性
实现数据资源的充分共享
下面介绍一下与数据库相关的几个概念:
(1)数据库系统 (DataBase System,简称DBS)是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)和软件平台(软件)五部分构成的运行实体。其中数据库管理员(DataBase Administrator,简称DBA)是对数据库进行规划、设计、维护和监视等的专业管理人员,在数据库系统中起着非常重要的作用
(2)数据库管理系统 (DataBase Management System,简称DBMS)是数据库系统的一个重要组成部分,是位于用户与操作之间的一层数据管理软件,负责数据库中的数据组织、数据操纵、数据维护和数据服务等。主要具有如下功能: 数据存取的物理构建:为数据模式的物理存取与构建提供有效的存取方法与手段。 数据操纵功能:为用户使用数据库的数据提供方便,如查询、插入、修改、删除等以及简单的算术运算和统计。 数据定义功能:用户可以通过数据库管理系统提供的数据定义语言(Data Definition Language,简称DDL)方便地对数据库中的对象进行定义。 数据库的运行管理:数据库管理系统统一管理数据库的运行和维护,以保障数据的安全性、完整性、并发性和故障的系统恢复性。 数据库的建立和维护功能:数据库管理系统能够完成初始数据的输入和转换、数据库的转储和恢复、数据库的性能监视和分析等任务。
(3)关系数据库 是支持关系模型的数据库。关系模型由关系数据结构、关系操作集合和完整性约束三部分组成。 关系数据结构:在关系模型中数据结构单一,现实世界的实体以及实体间的联系均用关系来表示,实际上关系模型中数据结构就是一张二维表。 关系操作集合:关系操作分为关系代数、关系演算、具有关系代数和关系演算双重特点的语言(SQL语言)。 完整性约束:完整性约束包括实体完整性、参照完整性和用户定义的完整性约束。
三.常用的数据库对象
(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数据文件的一种逻辑管理单位,它将数据库文件分成不同的文件组,方便于对文件的分配和管理。
文件组主要分为以下两种类型:
主文件组:包含主要数据文件和任何没有明确指派给其它文件组的文件。系统表的所有页都分配在主文件组中。
用户定义文件组:主要是在CREATE DATABASE或ALTER DATABASE语句中,使用FILEGROUP关键字指定的文件组。
说明: 每个数据库中都有一个文件组作为默认文件组运行,默认文件组包含在创建时没有指定文件组的所有表和索引的页。在没有指定的情况下,主文件组作为默认文件组。 对文件进行分组时,一定要遵循文件和文件组的设计规则:
(1)文件只能是一个文件组的成员。
(2)文件或文件组不能由一个以上的数据库使用。
(3)数据和事务日志信息不能属于同一文件或文件组。
(4)日志文件不能作为文件组的一部分。
(5)日志空间与数据空间分开管理。
注意:系统管理员在进行备份操作时,可以备份或恢复个别的文件或文件组,而不用备份或恢复整个数据库
四.4个系统数据库
SQL Server 2012的安装程序在安装时默认将建立4个系统数据库(Master、Model、Msdb和Tempdb)。
(1)master数据库 master数据库是SQL Server 2012中最重要的数据库。记录 SQL Server 实例的所有系统级信息,包括实例范围的元数据、端点、链接服务器和系统配置设置。
(2)tempdb数据库 tempdb是一个临时数据库,用于保存临时对象或中间结果集。
(3)model数据库 用作 SQL Server 实例上创建的所有数据库的模板。对 model 数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有数据库。
(4)msdb数据库 用于 SQL Server 代理计划警报和作业
五.创建数据库
1.以界面方式创建数据库 下面在SQL Server Management Studio中创建数据库“db_database”,具体操作步骤如下。
(1)启动SQL Server Management Studio,并连接到SQL Server 2012中的数据库。
(2)鼠标右键单击“数据库”选项,在弹出的快捷菜单中选择“新建数据库”命令
(3)进入“添加库”对话框。在列表框中填写数据库名“db_database”,单击“确定”按钮,添加数据库成功
2.使用CREATE DATABASE语句创建数据库 语法如下:
CREATE DATABASE DB_InletStudent02 --创建数据库DB_InletStudent02
ON PRIMARY--主数据文件
(
--name文件名
NAME='DB_InletStudent03.MDF',
--指定主数据文件的路径
FILENAME='F:\VS\DB_InletStudent03.MDF',
--初始大小
SIZE=8MB,
--文件增长容量
FILEGROWTH=10%,
MAXSIZE=UNLIMITED
)
LOG ON(--事务日志文件
NAME='DB_InletStudent03.LDF',
FILENAME='F:\VS\DB_InletStudent03.LDF',
SIZE=8MB,
FILEGROWTH=10%,
MAXSIZE=UNLIMITED
)
六.修改,删除数据库
1.修改数据库
ALTER DATABASE 数据库名称
ADD FILE:指定要增加的数据库文件。
TO FILEGROUP:指定要增加文件到哪个文件组。
ADD LOG FILE:指定要增加的事务日志文件。
REMOVE FILE:从数据库系统表中删除指定文件的定义,并且删除其物理文件。文件只有为空时才能被删除。
ADD FILEGROUP:指定要增加的文件组
MODIFY FILE:修改指定文件的文件名、容量大小、最大容量、文件增容方式等属性,但一次只能修改一个文件的一个属性
2.删除数据库
DROP DATABASE 数据库名称