您的位置:首页 > 数据库

关系型数据库

2016-05-29 17:42 302 查看

关系型数据库

定义:关系模型把世界看作是由实体和联系组成的,而关系型数据库是将数据库表作为实体,以数据库表的主键和外键的关联关系描述联系的一种数据库结构;

一对一:一条主表记录对应一条从表记录,同时一条从表记录对于一条主表记录;

一对多:一条主表记录对应多条从表记录,同时一条从表记录只对应一条主表记录;

多对多:一条主表记录对应多条从表记录,同时一条从表记录对应多条主表记录;

数据库管理系统DBMS

database management system

RDMS;

分类:本地数据管理系统;数据库服务器管理系统;

结构化查询语言 SQL

Structured Query Language

定义:是一种用于管理关系型数据库,并与数据库中的数据进行通讯的计算机语言;

DDL数据定义语言,创建,修改,删除数据库的内部数据结构

DQL数据查询语言,用于数据库中数据查询

DML数据操作语言,用于数据库中数据的增删改等

DCL数据控制语言,控制数据的访问权限;

MYSQL数据类型

整型: int;

浮点型:float,double ,decimal(10,2);

字符型:char(20),varchar(20);

date: date;

建表

primary key 定义当前列为主键,主键特点,非空,不能重复;

AUTO_INCREMENT 设置当前列为自动增长列,有DBMS为该例分配值,确保该例的值不重复;

case when

case when

truncate table

delete 会记录日志,意味着删除后可以恢复,但是效率低;

truncate 不会记录日志,不能恢复,效率高;

having 和 where的区别

where运行在分组前,因此不能执行聚合函数,having 是运行在分组之后,只能用作聚合函数的过滤;

执行顺序

from

where过滤

group by 分组

select 投影例

having 过滤

order by 排序

结论

在分组查询中,能够查询的字段,只能是分组字段和聚合函数;

可靠性+准确性=数据完整

数据完整:为了防止垃圾数据的产生,影响数据库的执行效率;

分类;实体完整性,保证一行数据是有效的,同行代表实体互不同,能区别;

实现方法:主键约束,primary key ,主键是表中的一个到多个例,不能重复,不能为空,一个表中只有一个主键;唯一约束:给定例的所有值必须唯一,该例在表中的每一行的值必须唯一;

分类:域完整性,保证一例数据是有效的;

实现方法:非空约束,not null ;默认约束 default ;检查约束 check,MySQL不支持;

分类:引用完整性,保证引用的编号是有效的;外键中出现的数据,主键中必须出现;

分类:用户自定义完整性,保证自定义规则;

两个表之间如果存在外键约束,那么删除主表记录时,由于外键约束存在,无法删除有从表记录引用的主表记录

级联删除:将主表记录对应的从表记录先删除,再删除主表记录

外键设为空:将主表记录对应的从表记录设置为null,在删除主表记录

外键与外键约束的区别

外键是指从表的某列与主表某列存在依附关系

外键约束是指在外键关联主键上强制加上的一个约束,如果违反约束,则不允许修改

注意:没有建立外键约束不等于没有外键;

between

>= <=

开闭原则

软件实体应该面向修改关闭,面向扩展开放,其实现核心就是抽象,将相同的代码抽象出来,便于代码重用,这就是闭,便于功能的扩展,这就是开

三层架构

持久层 :完成数据库操作。采用DAO模式,建立实体类和数据库进行映射,也就是那个类对应那个表,那个属性对应那个例。而持久层的目的就是完成关系数据和对象数据的转换;

业务层 :完成业务处理。采用事物脚本模式。将一个业务中所有的业务操作封装成一个方法;保证该方法中所有数据库更新操作同时成功,或同时失败;

表现层 : 完成数据的展示,采用MVC模式;

Model:模型,实体类;完成数据的封装和传输;

Version:视图,也就是GUI窗体,完成数据的展示;

Control:控制,也就是事件,完成业务方法的调用和业务流程的控制;

层与层之间采用接口做耦合,这样,当一个层的组件发生更改或替换时,不会影响别的层组件的使用;

用户—》 表现层–接口–》业务层–接口–》持久层—》DB
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: