重新认知了下Entity,数据库绪论必发365游戏官方网址

Django问卷侦查项目思路流程:

数据库系统概述

一 后端思路 :

必要深入分析 —- 搜索各实体对应涉及 —- 设计model架构 —- 统一能源封装
— 提供能源API入口 —- 设计项目实体作用 — 通过API达成实体效率 —
统1数据结构测试作用

一.一.一 数据, 数据库, 数据库管理连串, 数据库系统

    1. 数据: 数据是数据库中积攒的基本对象
      叙述事物的符号记录成为数据. 描述事物的号子能够是数字,
      也能够是文字, 图形, 图像, 声音, 语言等, 数占领多种表现格局,
      他们都得以因此数字化后存入Computer
      多少和数码表明是不可分的
  1. 数据库(DataBase , 简称 DB)
    数据库是长久积攒在管理器内, 有团体的, 能够共享的大度多少的集聚,
    数据库中的数据按一定的数据模型组织, 描述和储存, 具备异常的小的冗余度,
    较高的数量独立性,和易扩充性, 并可为种种用户共享

    冗余度,通俗的讲便是数量的重复度。在1个数量集合中再一次的多寡称为数据冗余

     - 有组织
     - 可共享
    - 永久存储
    
    1. 数据库管理连串(DataBase Managerment System, DBMS)
      正确的团伙和积累数据,
      高效获取和掩护数据,的2个种类软件—-数据库管理软件
      功能:

        1. 数码定义效用
          DBMS 提供数据定义语言(Data Definition Language, DDL),
          用户通过它能够便宜的对数据库中的数据对象进行定义.
      1. 数据协会, 存款和储蓄和保管
        DBMS 要分类组织, 存款和储蓄和管制各个数码, 包括数据字典, 用户数据,
        数据的存取路线等,
        要分明以何种文件结商谈存取情势在仓库储存级上集体这么些数据,
        如何贯彻数据里面包车型地铁关系,
        数据组织和积累的大旨指标是增高存款和储蓄空间利用率和福利存取,
        提供多样存取方法(如, 索引查找, Hash 查找,
        顺序查找等)来加强存取作用
      2. 数码调整功效
        DBMS 还提供数据垄断(monopoly)语言(Data, Manipulation Language, DML),
        用户能够行使DML操纵数据, 达成对数据库的骨干决定, 如查询, 插入,
        删除, 和改变等
      3. 数据库的事物管理和平运动作管理
        数据库在创制, 运用和保证时由数据库管理连串集结管理, 统1宰制,
        以保障数据的安全性,完整性,多用户对数码的并发发使用及发生故障后的种类苏醒.
      4. 数据库的确立和保卫安全效用
        它归纳: 数据库处事数据的输入, 转变来效, 数据库的转储,复苏法力,
        数据库的重协会功效和质量监视,深入分析效益等,
        那个效应平日是由局地实用程序或管理工具达成
      5. 别的职能
        席卷: DBMS 与互连网中其余软件系统的通讯效能, 1个DBMS
        与另一个DBMS或文件系统的数目转换职能,
        异构数据库之间的互访和互操作成效等.
    2. 数据库系统(DataBase System, DBS)
      数据库系统是指在微型计算机种类中引进数据库后的种类, 一般由数据库,
      数据库管理体系(及其开荒工具), 应用连串, 数据库管理员构成,
      应当建议的是, 数据库的树立,
      使用和尊崇等职业只靠2个DBMS远远不够, 还要有极其的职员来形成,
      那个人叫做数据库管理员(DataBase Administrator, DBA)

什么是Entity Framework

  Entity Framework是3个对象关联映射O/冠道M框架。

  Entity Framework让开采者能够像操作领域对象(domain-specific
objects)这样操作关系型数据(relational data)。

  Entity
Framework缩小了大多数常常需求编写制定的多寡操作代码。

  Entity
Framework中能够选用LINQ来询问数据,使用强类型(strongly typed
objects)来搜寻和操作数据。

  Entity
Framework提供了以下服务,使开辟者能够特别保养于程序工作逻辑,而非数据访问的基本操作。

  一. 气象或转移追踪(change tracking)

  二. 地方或主键识别(identity resolution)

  3. 懒加载(lazy loading)

  4. 询问翻译(query translation)

  Entity
Framework是ADO.NET的增高,它给开辟者提供了数据库访问和积攒的自动化机制。

  Entity Framework是3个开源框架。

 

贰 项目流程

必发365游戏官方网址 1

1.一.2 数据管理技艺的爆发和进化

    1. 人造管理阶段

2. 文件系统阶段
3. 数据库系统阶段

什么是O/RM

  O/路虎极光M是1种工具,能够自动地把世界对象数据存款和储蓄到关系型数据库(如MS SQL
Server),而无需多量的编码。

  O/CRUISERM蕴含七个入眼的部分:

  1. 世界对象(Domain class objects):我们定义的类。

  贰. 关系型数据库对象(Relational database
objects):数据库表,视图,存款和储蓄进度等。

  三. 映射音信(Mapping
information):领域对象与关系型数据库对象之间调换的新闻。

  O/哈弗M允许开采者把数据库设计和天地对象设计单独开,让程序更具有可维护性和可扩大性。

  它还提供了骨干的增加和删除改查的效应,开荒者不须要手动再编辑那部分代码。

  贰个第一名的数据库与应用程序的O/LANDM交互如下图所示:

  必发365游戏官方网址 2

 

三 寻觅各实体之间的对应关系

体系里面实体首要有:

必发365游戏官方网址 3

壹.一.3 数据库系统的天性

    1. 数量结构化

2. 数据的共享性高, 冗余度低, 易扩充
3. 数据独立性高
    - 物理独立性
    - 逻辑独立性
4. 数据由DBMS统一管理和控制
    数据控制功能
    1. 数据的安全性保护(Security)
    2. 数据的完整性(Integrity)
    3. 并发(Concurrency)
    4. 数据恢复(Recovery)

Entity Framework的结构

  Entity Framework的欧洲经济共同体结构如下图所示。

  必发365游戏官方网址 4

 

  EDM(Entity Data
Model):EDM包括多个第一的1对 – 概念模型(Conceptual
model)、存款和储蓄模型(Storage model)和照耀(Mapping)。

  一. Conceptual
model:概念模型蕴含了模型的类定义,以及类之间的涉及。概念模型的规划单独于数据库表设计。

  二. Storage
model:存款和储蓄模型是数据库设计模型,包含了多少库表,视图,存款和储蓄进程,以及它们的之间的关系和键。

  三. Mapping:映射包括了概念模型映射到存储模型的有关音信。

  LINQ to
Entities:一种基于对象模型编写的询问语言,它将回来概念模型中规划的实体。

  Entity
SQL:另一种和LINQ to
Entities相似的查询语言,可是它们照旧有局地距离的,开辟者依然需求单独花时间去学习它。

  Object
Service:数据库数据访问的首要输入,主要职务是物化(materialization),把Entity
Client Data Provider重临的数据转变来实体对象组织。 

  Entity Client Data
Provider:把LINQ to Entities或Entity SQL转变来数据库SQL。和ADO.Net
Data Provider举行报纸发表,发送或探求数据库数据。

  ADO.Net Data
Provider:ADO.Net Data Provider使用正式的ADO.Net和数据库举行互动。

 

4 依照实体关系与实业成效设计模型


数据模型中富含实现实体功用的各个能源类,皆将来续models.Model类,每一个模型类的能源,关系键值决定了数据表的总体结构,由此模型类的设计一定多地方思索.它的父类
Model
包涵了具有要求的和数据库交互的不贰法门,并提供了3个简短漂亮的概念数据库字段的语法。

模型类之间的涉嫌:

必发365游戏官方网址 5

一.二 数据模型

  • 数据模型(Data Model) 是现实世界数据特征的悬空

Entity Framework的支出情势

  Entity Framework提供了三种开辟方式:

  1. Code First

  2. Database First

  3. Model First

  

  Code First:

  必发365游戏官方网址 6

  在Code
First的支出情势中,要防止选拔视觉模型设计器(EDMX),一般是先编写制定POCO类,然后根据这一个类去变通数据库。

  那2个听从领域驱动开荒(DDD)原则的开垦者,更赞成于1起先先编写制定本身的圈子类,然后再生成数据库来促成多少持久化。

 

  Database First:

   必发365游戏官方网址 7

  通过已有个别数据库来生成EDMX(Entity Data Model)的支出形式正是Database
First的付出方式。

  倘诺数据库改动了,EDMX(Entity Data Model)也会更新。同时,Database
First也援助存款和储蓄进程,视图等。

 

  Model First:

   必发365游戏官方网址 8

  Model First是Code First和Database
First的1种折中开辟方式,它提供视觉模型设计器(EDMX)来统一希图数据模型,然后依据数据库模型来生成数据库以及世界类。

  

  总结:

  一. Code
First是先编写制定领域类,然后依据类来生成数据库,无视觉模型设计器(EDMX)。

  二. Database First是基于数据库生成视觉模型设计器(EDMX)及世界类。

  三. Model
First是文士成视觉模型设计器(EDMX),然后根据EDMX生成数据库及世界类。

 

一.二.1 两类数据模型

  • 数据模型三地点的渴求:
    • 一.比较实际地模拟现实世界
    • 2.便于为人所通晓
    • 叁.便宜在微型计算机上达成

率先类模型: 概念模型(Conceptual Model), 也称消息模型 ,
它是按用户的见地来对数据和消息建模, 首要用于数据库设计

第1类模型: 档次模型(Hierarchical Model), 网状模型(Network Model),
关系模型(Relational Model), 面向对象模型(Object Oriented Model)
和对象关联模型(Object Relational Model), 依据计算机的见识来建立模型.

实际世界—->(抽象)—>音信世界(概念模型)—–>机器世界(DBMS帮助的数据模型)


选择Entity Framework开荒格局

  必发365游戏官方网址 9

  一. 假若你有三个现有的次序,并且一度定义了世界类,那么,能够运用Code
First的付出格局来生成数据库举行支付。

  2. 假令你有已个现存的数据库,那么,能够应用Database
First的支出形式来生成EDM举行开荒。

  三.
万一你没有现有的数据库,也从未概念好的天地类,而你更赞成于选拔图形化分界面来布置数据库模型,那么,能够应用Model
First的开采情势举行支付。

  小编个人的话,任何情景都会选用Code
First的付出情势,因为它相比灵敏,可是对开辟者本人的必要会更加高级中学一年级些。

  

1.贰.二 数据模型的组合成分

数据结构 ** 数据操作** 数据完整性

  • 数据结构:
    • 与对象的等级次序, 内容, 性质有关,
      如:网状模型中的数据项,记录,
      论及模型中的域,属性,关系 数据里面联系有关的对象,
      譬如:网状模型中的系型(Set Type)
    • 数码操作:
      对数据库中各样对象(型)的例证(值)允许施行的操作的集纳,包蕴操作及有关的操作规则.
      如查询,更新(插入,删除,修改)
    • 数据的完整性约束原则

DbContext

  必发365游戏官方网址 10

  DbContext是Entity
Framework的多少个重点部分,它是世界或实体类与数据库之间的大桥。

  DbContext是一个很入眼的类,主要职务是以目的的方法和数据开始展览相互,它包蕴以下活动:

  EntitySet:DbContext包涵实体集结(DbSet<TEntity>),把实体映射到多少库表。

  Querying:DbContext把LINQ to
Entities查询转换到SQL查询,并发送到数据库。

  Change
Tracking:DbContext会追踪从数据库查询出来的实体的情景改变。

  Persisting
Data:DbContext依据实体的气象提供插入,更新和删除等数据库操作。

  Caching:DbContext私下认可完成一流缓存,在Context类的生命周期时期,它会保留检索出来的实业。

  Manage
Relationship:Database First或Model
First中,使用CSDL,MSL,SSDL来治本涉及,在Code First中选拔Fluent
API来保管关系。

  Object
Materialization:DbContext把表原始数据调换来实体对象。

  

一.二.三 概念模型

    1. 音信世界中的基本概念
      • 实体(Entity)
        客观存在并可互相不相同的事物
      • 属性(Attribute)
        实体的某一本性
      • 码(Key)
        唯一标记实体的习性集
      • 域(Domain)
        天性的取值范围
      • 实体型(Entity Type)
        具有同等属性的实业必然具有协同的风味和属性
      • 实体集(Entity Set)
        同样档期的顺序实体的聚合
      • 联系(Relationship)
        实体内部的牵连,指组成实体的各属性之间的关系
        实业之间的调换平日是指差别实体集以内的联络
  • 二.多少个实体型之间的关联

    1.1:1
    2.1:n

    3.m:n
    4.三个以上实体之间的维系
    1:m:n
    m:n:p
    五.单个实体型内的联络
    1:1 1:n n:m

  • 概念模型的一种象征方法: 实体—联系方法(Entity-Relationship
    Approach) 即 E-福特Explorer 图, E-Highlander模型

    • 矩形: 实体型
    • 属性: 椭圆

必发365游戏官方网址 11

实业及品质图.png

– 联系: 菱形

必发365游戏官方网址 12

实体及其关系图.png

必发365游戏官方网址 13

完全的实业-联系图.png

– [实体及属性图]

  • [实体及其联系图]
  • [全部的实体-联系图]

必发365游戏官方网址 14

E-R图1.png

必发365游戏官方网址 15

E-R图2.png


实业生命周期

  在实体的人命期中,每一种实体都有3个基于上下文(DbContext)的操作的实业状态。

  实体状态是3个System.Data.Entity.EntityState类型的枚举,它含有以下的值:

  Added:实体正在被上下文追踪,但还不存在于数据库中。

  Deleted:实体正在被上下文追踪并存在于数据库,但被标识为从数据库删除。

  Modified:实体正在被上下文跟踪并存在于数据库,而且实体的有个别或享有属性的值被更改了。

  Unchanged:实体正在被上下文追踪并存在于数据库,但实体的具有属性值都没被修改。

  Detached:实体不被上下文跟踪。

 

  下图表达了实体状态怎样影响数据库操作。

   必发365游戏官方网址 16

 

  一. 新的实业具有Added的意况,DbContext后续会在数据库中试行插入操作。

  2.
由此LINQ检索出来的实体具备Unchanged的景观,但假若调用了AsNoTracking()方法,其状态为Detached。

  3.
修改了寻觅出来的实业的属性值,实体会修改情况为Modified,DbContext后续会在数据库中实行更新操作。

  4.
内需删除的实体会有所Deleted的情景,DbContext后续会在数据库中实践删除操作。

  5. 对于DbContext中已有个别实体,能够因而dbContext.Entry(entity).State
= EntityState.Detached的措施把状态设置为Detached。

 

一.贰.肆 最常用的数据模型

  • 常用的数据模型分类
    • 档次模型(Hierarchical Model)
    • 网状模型(Networking Model)
    • 提到模型(Relational Model)
    • 面向对象模型(Object Oriented Model)
    • 目的关系模型(Object Relaional Model)

  • 下边包车型客车节点都以指向非关系模型
    • 父老母节点: 有个别节点的上二个节点(有且只有八个)
    • 儿女节点: 有个别节点的下多少个节点(能够有三个)

Entity Framework版本

版本

引入功能

EF 3.5

Database First模式下基本的O/RM支持。

EF 4.0

POCO的支持, 懒加载, 可测试性提升,定制化代码生成,以及引入Model First开发模式。

EF 4.1

在ObjectContext的基础上简化了DBContext API,引入Code First开发模式。

EF 4.3

引入Code First Migrations,可以根据定义的Code First模型来创建或修改数据库。

EF 5.0

宣布EF为开源项目。引入了枚举支持,表值函数, 空间数据类型,模型多图表,设计界面着色形状,批量导入存储过程,EF Power Tools,以及各种性能提升。

EF 6.0

引入了许多Code First & EF设计相关的新功能,如异步操作(asynchronous),弹性连接(connection resiliency),依赖解析(dependency resolution)等。

注:Entity Framework Core不在本文斟酌范围。

 

一.2.五 等级次序模型(略)

  • 档案的次序数据模型模型的数据结构
    档案的次序模型的准绳:

  • 有且只有二个节点无双节点, 叫做根节点

  • 根节点之外的其余节点有且只有一个父母节点

    节点=记录类型
    节点—(有箭头线段)—-节点
    只得管理 一:n 1对多的实业联系

    男士节点: 同一双亲的儿女节点
    叶节点: 未有男女节点

  • 多对多交换在档次模型中的表示

    • 冗余节点法
    • 虚拟节点法
  • 等级次序模型的数据调节与完整性约束

    • 计划(必须交给相应的父母节点音信)
    • 除去(对应的儿女节点也会被剔除)
  • 档期的顺序数据模型的积存结构
    一.邻接法 (依次邻接存放)
    二.链接法 (子女,兄弟指针指向)

  • 档期的顺序模型的利害
    优点

    1. 档次模型数据结构轻巧清晰
    2. 查询功效高
    3. 完整性援助
      缺点:
    4. 唯其如此表示壹对多的联络, 而活着中山大学部是多对多
    5. 当贰个节点有所多少个父母时, 会很担负
    6. 必须经过家长节点查询子女节点
    7. 结构严密, 趋于程序化
      档案的次序模型特别适合集团职务管理, 家族

壹.贰.六 网状模型

  • 网状数据模型的数据结构
    条件:

    • 允许一个上述的顶峰无大人
    • 贰个节点能够有多于三个家长
  • 网状数据模型的支配与完整性约束

    有点乱

  • 网状数据模型的贮存结构
    果不其然比档期的顺序模型要复杂(略过, 详细看教材)

  • 网状数据模型的利弊
    优点:

    • 能够更直白地描述现实世界, 如八个节点能够有八个父母,
      节点之间能够有五种挂钩
    • 富有特出的性质, 存取成效较高
      缺点
    • 单位比较复杂, 而且随着应用情形的扩充,
      数据库的布局就变得特别复杂, 不便利最终用户明白
    • 网状模型的DDL,DML复杂, 而且要放置某壹种尖端语言(如:COBOL,C) 中,
      用户不便于调整, 不便于选用

参谋资料

本文半数以上内容来自:Entity Framework
Tutorial

一丢丢内容参照他事他说加以考察:Entity
Framework官网

1.二.7 关系模型(注重)

  • 关周详据模型的数据结构
    关系模型由壹组关系构成, 每一个关系的数据结构是一张规范化的贰维表

    一对术语:

    • 关系(Relation): 一张表
    • 元祖(Tuple): 行
    • 属性(Attribute): 列
    • 码(key): id
    • 域(Domain): 属性的取值范围
    • 重量: 具体的1个属性值
    • 涉嫌方式: 表格描述
  • 关周密据魔心的操纵与完整性约束
    涉及的完整性约束原则:

    • 实体完整性
    • 参照完整性
    • 用户定义完整性
      三.关联素具模型的积累结构
      一个表, 对应3个操作系统文件
      也得以和谐布置表, 索引等储存机构
  • 关周详据模型的优缺点
    优点:

    1. 创造在严格的数学概念基础上
    2. 概念单1, 1切以表的格局表现, 数据结构轻易,清晰,用户易懂易用
    3. 存取路线对用户透明, 数据独立性, 安全有限支撑性, 简化了工程师的的专门的学业,
      和数据库开垦构建办事
      缺点…..

一.叁 数据库系统结构

一.3.一 数据库系统情势的概念

情势(Schema) 是数据库中一切数据的逻辑结议和个性的讲述


一.三.贰 数据系统的三级格局组织

外模式 模式 内模式

  • 模式(Schema)
    方式也称之为逻辑情势,
    是数据库中全体数据的逻辑结会谈特征描述,是全数用户的公共数据视图
    是数据库系统形式中间层, 不关乎物理存储细节和硬件意况,
    也和切实的应用程序, 所使用的采纳开荒工具及高档程序语言(如: C , COBOL
    FORTRAN)非亲非故

一个数据库, 唯有2个情势

概念格局时, 不唯有要定义数据的逻辑结构,
举例数据记录由那二个数据项构成,数据项的名字, 类型, 取值范围等,
而且要定义数据之间的牵连, 定义与数据有关的安全性, 完整性供给

  • 外模式(External Schema)
    外情势又称为子形式(Subsechema) 或用户形式
    他是数据库用户(包涵运用技术员和最后用户)能够看见和选取的局地数据的逻辑结会谈特色的叙述,
    是数据库用户的数据视图, 是与某一应用有关的数量的逻辑表示

三个数据库能够有八个外形式
3个外形式能够被八个应用类别应用

    一个应用程序只能使用一个外模式
  • 内模式(Internal Schema)
    内方式被叫做存款和储蓄情势(Storage Schema)
    三个数据库只有3个内形式, 是数据物理构造和仓储格局的叙说,
    是数据在数据库内部的象征方法
    比方说: 记录的积攒格局是 堆存场
    有个别属性值得升(降)序存款和储蓄
    属性值聚簇(cluster)存储
    目录依照什么样格局组织:
    B+ 树索引,
    hash 索引
    是还是不是压缩存款和储蓄
    是还是不是加密
    多少的贮存记录协会有啥规定, 如定长结构或变长结构,
    五个记下不可能跨物理页存款和储蓄等

一.3.三 数据库的二级影象效能 与数据独立性

  • 外情势/格局影象
    方式描述的数据的全局逻辑结构,
    外情势描述的是数额的一些逻辑结构,对应同1个格局能够有自由多少个外形式.
    对于每贰个外情势, 数据库系统都有1个外情势/格局影象,
    它定义了该外情势与情势之间的对应关系,那么些影像定义日常包罗在个别外情势的叙述中.

  • 方式/内格局印象
    数据库中唯有二个形式, 也唯有2个内形式, 全数方式/内格局印象是唯一的,
    定义了数量全局逻辑结构与积攒机构之间的应和关系,
    该影像定义常常包含在形式描述中.

    内部 数据库格局即全局逻辑结构是数据库的中央与重大,
    设计数据情势结构时, 应首先明确数据库的逻辑情势


一.4 数据库系统的结缘

  • 硬件平台及数据库
    1. 足足大的内部存款和储蓄器, 存放操作系统DBMS核心模块数量缓冲区`应用程序
      贰.丰裕大的磁盘或磁盘阵列等设备存放数据库,
      有丰富的磁带(或光盘)作数据备份
      三.须求系统有较高的康庄大道本事, 以加强数据传送率
  • 软件
    1. DBMS, DBMS 是为数据库的建构, 使用和掩护布置的系列软件
    2. 支撑DBMS运维的操作系统
    3. 享有与数据库结构的高档次和品级语言及编写翻译系统, 便于付出应用程序
    4. 以DBMS为宗旨的应用开采工具
    5. 为一定应用景况开荒的数据库应用体系
      -人员
    6. 数据库管理员(DataBase Administrator, DBA)
      任务如下:
    7. 决定数据库中的消息内容和布局
    8. 操纵数据库的存款和储蓄结商谈存取战略
    9. 定义数据的安全性必要和完整性约束原则
    10. 监察数据库的应用和平运动行
    11. 数据库的精雕细刻和烧结重构
    12. 系统一分配析员和数据库设计人士
      三, 应用技士
    13. 用户

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website