数据模型是数据库系统的核心与基础,是描述数据与数据之间的联系,数据的语言,数据一致性约束的概念性工具的集合。数据模型通常由数据结构,数据操作和完整性约束3部分组成。

  • 数据结构:是对系统静态特征的描述。描述对象包括数据的类型,内容,性质和数据之间的相互关系。
  • 数据操作:是对系统动态特征的描述。是对数据中各种对象实例的操作。
  • 完整性约束:是完整性规则的集合。它定义了给定数据模型中数据及其联系所具有的制约和依存规则。
    常见的数据库模型有层次模型,网状模型和关系模型
    关系模型:以二维表来描述数据。关系模型中,每个表有多个字段列和记录行,每个字段列有固定的属性(数字,字符,日期)。关系型数据结构简单,清晰,具有较高的数据独立性,因此是目前主流的数据库数据模型。

在SQL Sever2012数据库中,表、视图、存储过程和索引等具体存储数据或对数据进行操作的实体称为数据库对象。以下为常见的数据库对象。

  • 表:包含数据库中所有数据的数据库对象,由行和列组成,用于组织和存储数据。
  • 字段:表中每列称为一个字段,字段具有自己的属性,如字段类型,字段大小。5种基本字段类型:字符型、文本型、数值型、逻辑型和日期型。
  • 索引:索引是一个单独的、物理的数据库结构。它依赖与表的建立,在数据库中索引数据库程序无需对整个表进行扫描,就可以在其中找到所需的数据。
  • 视图:视图是从一张或多张表种导出的表,是用户查看数据表中数据的一种方式。
  • 存储过程:是一组为了完成特定功能的SQL语句集合,经编译后以名称的形式存储在SQL Sever服务器端的数据库中,又用户通过指定存储过程的名字来执行。

SQL Sever2012数据库主要由文件和文件组组成。文件主要分为3类:
主要数据文件:(.mdf)
次要数据文件:(.ndf)
事务日志文件:(.ldf)
数据库的分类:系统数据库和用户数据库。
系统数据库:master数据库,记录SQL Server势力的所有系统级信息;tempdb数据库:用于保存临时对象和中间结果集;model数据库,所有用户创建的数据库的模板;msdb数据库,用于代理计划警报和作业。
用户数据库:自己建立的数据库。
创建数据库时需要指定哪些属性:

  1. 文件名称,存放位置,分配的初始空间,属于哪个文件组。
  2. 文件增长:可以按照百分比或实际大小指定增长速度。
  3. 文件容量设置:可以指定文件增长的最大值或不受限。
  4. 兼容级别:版本号
  5. 数据库是否只读:默认false
  6. 限制访问:MULTI_USE(正常状态) SINGIE_USER(维护操作状态)RESTRICTED_USER(管理员或特定的人);

使用SQL语句创建数据库1

USE master--指向当前使用的数据库
GO--批处理的标志
CREATE DATABASE E_Market--创建E_Market数据库
ON PRIMARY--主文件组
(
NAME='E_Market_data',--主文件逻辑文件名
FILENAME='F:\SQL_PROJECT\E_Market_data.mdf',--主文件物理文件名
SIZE=5MB,--主文件初始大小
MAXSIZE=100MB,--主文件增长的最大值
FILEGROWTH=15%--主文件的增长率
)
LOG ON--日志文件
(
NAME='E_Market_log',--主文件逻辑文件名
FILENAME='F:\SQL_PROJECT\E_Market_log.ldf',--日志物理文件名
SIZE=5MB,--日志文件初始大小
FILEGROWTH=0--未启用自动增长
)
GO

使用sql语句创建多个数据文件和日志文件

USE master--指向当前使用的数据库
GO--批处理的标志
CREATE DATABASE E_Market--创建E_Market数据库
ON PRIMARY--主文件组
(
NAME='E_Market_data',--主文件逻辑文件名
FILENAME='F:\SQL_PROJECT\E_Market_data.mdf',--主文件物理文件名
SIZE=5MB,--主文件初始大小
MAXSIZE=100MB,--主文件增长的最大值
FILEGROWTH=15%--主文件的增长率
),
FILEGROUP FG--创建了一个次文件组
(
NAME='E_Market2_data',
FILENAME='F:\SQL_PROJECT\E_Market2_data.ndf',--主文件物理文件名
SIZE=5MB,
FILEGROWTH=10%
)
LOG ON--日志文件
(
NAME='E_Market_log',--主文件逻辑文件名
FILENAME='F:\SQL_PROJECT\E_Market_log.ldf',--日志物理文件名
SIZE=5MB,--日志文件初始大小
FILEGROWTH=0--未启用自动增长
),
(
NAME='E_Market2_log',--主文件逻辑文件名
FILENAME='F:\SQL_PROJECT\E_Market2_log.ldf',--日志物理文件名
SIZE=3MB,--日志文件初始大小
FILEGROWTH=10%,--未启用自动增长
MAXSIZE=100MB
)
GO
SELECT * FROM sysdatabases

使用SQL语句向现有数据库中添加文件组和数据文件
参考https://www.51zxw.net/show.aspx?id=39121&cid=492

USE E_Market--对E_Market数据库进行操作
ALTER DATABASE E_Market ADD FILEGROUP FG1
GO

--为新建的文件组FG1添加数据文件
ALTER DATABASE E_Market ADD FILE
(
NAME='FG1_E_Market_data',
FILENAME='F:\SQL_PROJECT\FG1_E_Market_data.ndf',
SIZE=5MB,
FILEGROWTH=10%,
MAXSIZE=500MB
)TO FILEGROUP FG1
GO
--将文件组FG1设为默认文件组
ALTER DATABASE E_Market
MODIFY FILEGROUP FG1 DEFAULT
GO

放在建立数据库之前,用于判断数据库是否已经存在,这样以后不管多少次重建都不会报错。

IF EXISTS (SELECT * FROM sysdatabases WHERE name='E_Market')
DROP DATABASE E_Market
GO

建立数据库用户
登录名:连接到SQL Server服务器
数据库用户名;
SQL Server的使用者
每个用来登录SQL Server的登入名都是一个用户
同一个数据库可以拥有多个用户,同一个用户也可以同时访问多个数据库