a. 数据库基本概念 i. 数据库:是表和数据库访问对象的集合,其中表分别存储了不同的实体信息,每一行数据对应一个实体的描述信息 i. 实体与记录: 1. 实体是所有客观存在的,可以被描述的事物 2. 记录:数据库中存储的数据表格,每一“行”实际上对应一个实体,这样的一行,在数据库中,通常叫做一条“记录” ii. 数据库管理系统(DNMS):是一种系统软件,由一个互相关联的数据集合和一组访问数据的程序构成,主要功能是维护数据库,并有效地访问数据库中各个部分的数据 iii. 数据库系统(DBS):是一个实际可运行的系统,可以对系统提供的数据进行存储、维护和应用,是由存储介质、处理对象和管理系统共同组成的集合体 iv. 数据冗余:是指数据库中存在一些重复的数据库 i. 数据的完整性:是指数据库中数据的准确性,数据库允许有一些数据冗余,但是要保持数据的完整性 1. 准确性:是通过数据库表的设计和约束来实现的 2. 为了实现完整性,数据库需要做以下两方面的工作 a. 检验每行数据是否符合要求 b. 检验每列数据是否符合要求 3. 约束: a. 实体完整性约束:要求表中的每一行数据都反映不同的实体,不能存在相同的数据行 i. 索引 ii. 唯一约束 iii. 主键约束 b. 域完整性约束:给定列输入的有效性 i. 限制数据类型 ii. 检查约束 iii. 输入格式 iv. 外键约束 v. 默认值 vi. 非空约束 c. 引用完整性约束:用来保持表之间已定义的关系,通过主键和外键之间的引用关系来实现 d. 自定义完整性约束:用来定义特定的规则 i. 列的数据类型 1. 二进制数据:用来存储非字符和文本的数据 a. Binary:固定长度 b. Varbinary :可变长度 c. Image:可用来存储图像 2. 文本数据类型:字符数据包括任意字母、符号或数字字符的组合 a. Char :固定长度的非 Unicode 字符数据 b. Varchar :可变长度的非 Unicode 字符数据 c. Nchar :固定长度的的 Unicode 字符数据 d. Nvarchar :可变长度的的 Unicode 字符数据 e. Text :存储长文本信息 f. Ntext:存储可变长度的长文本 3. 日期和时间数据类型:用于存储日期和时间 a. Datetime :时间格式的类型 4. 数字数据类型:该数据仅包含数字、包括正数、负数以及分数 a. Int 、smaliint、tinyint、bigint:整数 b. float、real:浮点数 5. 货币数据:money 6. Bit 数据类型:bit(存储布尔数据类型) ii. 主键和外键 1. 主键:用来标识表中每一行的唯一标识符,使用主键时需要保持最少性和稳定性 a. 最少性:是指列数最少的键,如果可以从单个主键和组合主键中选择时,应该选择单个主键 b. 稳定性:是指列中数据的特征,由于主键通常用来在两个表之间建立联系,所以主键的数据不要经常更新,理想情况下,应该永远不改变 2. 外键:相对于主键而言,他就是“子表”中对应于“主表”的列