精华内容
下载资源
问答
  • 数据库设计--实体关系图(ERD)

    万次阅读 多人点赞 2015-08-01 15:15:17
    1、E-R图定义 ...E-R图为实体-联系图,提供了表示实体型、属性和联系方法,用来描述现实世界概念模型。实体关系图表示信息系统概念模型数据存储。 –百度百科 2.1E-R图表示法(Chen’s模型)

     

    1、E-R图的定义 

    实体关系图:简记E-R图是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式。 –百度百科

     

     

    2、E-R的使用方法 

    E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。实体关系图表示在信息系统中概念模型的数据存储。 –百度百科

     

     

    2.1E-R图表示法(Chen’s模型)

     

    2.2E-R表示法中各图形的定义

    实体:具有公共性质的可相互区别的现实世界对象的集合,可以是具体的,也可以是抽象的概念或联系。
    属性:实体所具有的模拟特性,一个实体可由若干个属性来刻画。
    关系:数据对象彼此之间相互联系的方式称为关系。
    关系连接线:用来连接实体与关系的线段。
     

    2.3E-R图的局部表示结构

     
         
      实体--属性 实体--关系 实体之间的关系
     

    2.4E-R图中实体与关系详解

    1.联系的类型
    (1)一对一联系(1:1)
    例如:一个球队只能有一个经理,一个经理只在一个球队任职,则球队和经理是一对一的。
    (2)一对多联系(1:n)
    例如:一门课程由一个教师任教,一个教师可以任教多门课程,则教师和课程是一对多的。
    (3)多对多联系(n:n)
    例如:一个学生可以选多门选修课,一门选修课可以被多个学生选修,则学生和选修课是多对多的。
     
    2.多实体之间的关系

    定义:在两个以上多个实体集之间,当一个实体集与其它实体集之间均(注意是均)存在相同关系,而其它实体集之间均(注意是均)没有关系时,这种关系才称之为多个实体集之间的关系。

    例如:有三个实体:供应商、零件、项目,一个供应商可以供应多个项目多个零件,每个项目可以使用多个供应商提供的零件,每种零件可以由不同供应商提供。
    分析这个例子,我们可以看出:供应商和零件是多对多的,供应商和项目是多对多的,但是项目和零件之间却是没有关系的
    这符合多实体之间关系的定义,所以可以画成如下形式:
     
    3.多实体之间的关系和多实体每两个实体之间的关系的区别
        例如:有三个实体:供应商、零件、项目,画出三个实体之间的关系和三个实体两两对应的关系
     
    三个实体之间的关系
     
     
    三个实体两两对应的关系
     
    由此,可以看出三个实体之间的关系和三个实体两两对应的关系是不等价的。
     

    2.5E-R图实例

     
     

     

     

     

    展开全文
  • flask 数据库的设置

    2017-07-16 14:12:05
    Web应用普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示实体的数据...

    Web应用中普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储在表中,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示的实体的数据属性。比如:商品表里有name、price、number等。 Flask本身不限定数据库的选择,你可以选择SQL或NOSQL的任何一种。也可以选择更方便的SQLALchemy,类似于Django的ORM。SQLALchemy实际上是对数据库的抽象,让开发者不用直接和数据库打交道,而是通过Python对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升。

    SQLALchemy是一个关系型数据库框架,它提供了高层的ORM和底层的原生数据库的操作。flask-sqlalchemy是一个简化了SQLALchemy操作的flask扩展。


    安装:

    pip install flask-sqlalchemy

    Flask的数据库设置:

    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/test3'

    常用的SQLAlchemy字段类型

    常用的SQLAlchemy列选项

    常用的SQLAlchemy关系选项










    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31475921/viewspace-2142125/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/31475921/viewspace-2142125/

    展开全文
  • 4.1 数据库的设置

    2019-01-06 23:44:00
    Web应用普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示实体的数据...

     

    Web应用中普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储在表中,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示的实体的数据属性。比如:商品表里有name、price、number等。 Flask本身不限定数据库的选择,你可以选择SQL或NOSQL的任何一种。也可以选择更方便的SQLALchemy,类似于Django的ORM。SQLALchemy实际上是对数据库的抽象,让开发者不用直接和SQL语句打交道,而是通过Python对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升。

    SQLAlchemy是一个关系型数据库框架,它提供了高层的ORM和底层的原生数据库的操作。flask-sqlalchemy是一个简化了SQLAlchemy操作的flask扩展。

    数据库安装

    安装服务端

    sudo apt-get install mysql-server
    

    安装客户端

    sudo apt-get install mysql-client
    
    sudo apt-get install libmysqlclient-dev
    

    数据库的基本命令

    登录数据库

    mysql -u root -p
    

    创建数据库,并设定编码

    create database <数据库名> charset=utf8;
    

    显示所有数据库

    show databases;
    

    在Flask中使用mysql数据库,需要安装一个flask-sqlalchemy的扩展。

    pip install flask-sqlalchemy
    

    要连接mysql数据库,仍需要安装flask-mysqldb

    pip install flask-mysqldb
    

    使用Flask-SQLAlchemy管理数据库

    使用Flask-SQLAlchemy扩展操作数据库,首先需要建立数据库连接。数据库连接通过URL指定,而且程序使用的数据库必须保存到Flask配置对象的SQLALCHEMY_DATABASE_URI键中。

    对比下Django和Flask中的数据库设置:

    Django的数据库设置:Django中设置数据库

    Flask的数据库设置:

    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/test3'

    常用的SQLAlchemy字段类型

    类型名python中类型说明
    Integer int 普通整数,一般是32位
    SmallInteger int 取值范围小的整数,一般是16位
    BigInteger int或long 不限制精度的整数
    Float float 浮点数
    Numeric decimal.Decimal 普通整数,一般是32位
    String str 变长字符串
    Text str 变长字符串,对较长或不限长度的字符串做了优化
    Unicode unicode 变长Unicode字符串
    UnicodeText unicode 变长Unicode字符串,对较长或不限长度的字符串做了优化
    Boolean bool 布尔值
    Date datetime.date 时间
    Time datetime.datetime 日期和时间
    LargeBinary str 二进制文件

    常用的SQLAlchemy列选项

    选项名说明
    primary_key 如果为True,代表表的主键
    unique 如果为True,代表这列不允许出现重复的值
    index 如果为True,为这列创建索引,提高查询效率
    nullable 如果为True,允许有空值,如果为False,不允许有空值
    default 为这列定义默认值

    常用的SQLAlchemy关系选项

    选项名说明
    backref 在关系的另一模型中添加反向引用
    primary join 明确指定两个模型之间使用的联结条件
    uselist 如果为False,不使用列表,而使用标量值
    order_by 指定关系中记录的排序方式
    secondary 指定多对多中记录的排序方式
    secondary join 在SQLAlchemy中无法自行决定时,指定多对多关系中的二级联结条件

    转载于:https://www.cnblogs.com/wenyule/articles/10231062.html

    展开全文
  • 数据库和表设计

    2021-06-07 09:49:45
    实体就是数据库中所要表示的客观世界中存在事物 实体完整性将行定义为特定表唯一实体,它规定表每一行记录表中是唯一 实体完整性表中约束体现为:主键约束,唯一约束, 约束种类 功能描述 ...

    数据库和表的设计

    数据完整性可以分为四类:实体完整性,域完整性,引用完整性和用户自定义完整性

    实体完整性:

    实体就是数据库中所要表示的客观世界中存在的事物

    实体完整性将行定义为特定表的唯一实体,它规定表的每一行记录在表中是唯一的 实体完整性在表中的约束体现为:主键约束,唯一约束,

    约束种类 功能描述
    主键约束 主键是表中一列或多列数据,用来唯一表示一行数据l。
    唯一约束 可以用来确保在非主键列中不存在重复值,劣质可以是null(空)。

    域完整性

    实体完整性是指数据表中应该输入那些数值,而域的完整性则是考虑如何限制向表中输入的数值的范围。域完整性的约束: 外键约束,默认值约束,非空约束

    约束种类 功能描述
    FOREIGN KEY(外键)约束 一个表中的FOREIGN KEY 指向另一个表中的主键
    DEFAULT(默认值)约束 用于向列中插入默认值
    NOT NULL (非空)约束 用于强制该列不许为NULL(空)

    引用完整性

    引用完整性是指保证主关键字(被引用表)和外部关键字(引用表)之间的参照关系。它涉及两个或两个以上表中数据的一致性维护。外键值将引用表中包含此外键的记录和被引用表中主键与外键相匹配的记录关联起来。

    自定义完整性

    用户自定义完整性是指针对某一具体关系型数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的予以要求。

    数据库完整性在MySQL中的体现

    使用主键约束

    主键,又称主码,是表中一列或多列的组合。主键约束(PRIMARY KEY CONSRTRAINT)要求主键列的数据唯一,并且不允许为空。主键能够唯一的表示表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且加快数据库查询的苏吨。主键和疾苦之间的关系如同身份证和人之间的关系或者是学号和学生之间的关系,他们之间是一一对应的。在MySQL中主键分为:单字段主键和多字段主键。

    (1):设置单字段主键:

    在MySQL中由一个字段作为主键时,分为两种情况,

    (2):在定义列的同时设置主键,语法规则如下:

    列名数据类型  PRIMARY KEY [默认值]
    

    示例:

    定义年纪表,其主键为id,SQL

    CREATE table Grade(
    id INT(11) PRIMARY KEY,-- 年级编号主键
    GradeName varchar(20), -- 年纪名称
    Major varchar(50)  -- 所属专业
    );
    

    在定义完所有列之后设置主键,语法规则如下:

    [CONSTRAINT 约束名] PRIMARY KEY(列名);
    

    实例 定义班级表,其主键为 id SQL

    CREATE table Grade(
    id INT(11) ,-- 班级编号主键
    GradeName varchar(20), -- 年纪名称
    Gradeld int(11), -- 所属年纪的编号
    BeginYear YEAR,-- 开班年份
    PRIMARY KEY(id) -- 设置id为主键
    );
    

    (3) 设置多个字段为主键(设置联合主键)

    PRIMARY KEY([列名1,列名2,列名3,...列名N])
    

    示例:定义学生表studentunfo,假设表中没有主键id 为了确定一个学生唯一,可以把name(姓名)和studentNo(身份证号),作为联合主键

    CREATE table StudentInfo(
    `Name` varchar(20),
    StudentNo varchar(18),
    Gender varchar(2),
    Age int(4),
    Birthday DATE,
    classID int(4) ,
    PRIMARY key(`Name`,StudentNo)
    );
    

    设置字段为自动增长

    在数据库系统应用中,我们希望在每次添加新纪录时,系统能自动生成字段的主键值,这时就可以通过为主键设置 AUTO_INCREMENT关键字来实现,在默认情况下,在MySQL中AUTO_INCREMENT的初始值是 1 ,每次新添加一条数据,字段值都会自动加1.在设置时需要驯兽以下几点规则:

    (1):一个表中只能有一个字段使用 AUTO_INCREMENT.

    (2):AUTO_INCREMENT 必须作为主键的一个部分(只有主键可以设置),不得单独使用。

    (3):AUTO_INCREMENT 字段的数据类型必须为整形类型,

    设置表的字段为自动增长的语法

    列名数据类型 AUTO_INCREMENT PRIMARY KEY
    

    示例:重新定义数据表Grade,并将主键id设置为自动增长Sql语句

    CREATE table Grade(
    id INT(11)AUTO_INCREMENT PRIMARY KEY ,-- 年级编号主键
    GradeName varchar(20), -- 年纪名称
    Major varchar(50)  -- 所属专业
    );
    

    使用外键约束

    外键的作用是在多张表的数据之间建立关系,确保多个表之间数据的一致性、完整性。一个表可以有零到任意多个外键。外键属于引用完整性,一个表的外键可以为控制,若不为空值,则每一个外键必须 等于另一个表中主键的某个值。定义为外键后,不允许删除在另一个表中具有关联关系的数据行。

    外键约束中有两个名词,需要大家注意。

    (1)主表(父表):对于两个具有关系的表而言,相关联的字段中主键所在表即为主表

    (2)从表(子表):对于两个具有关系的表而言,相关联的字段中外键所在表即为从表

    创建外键的语法如下:

    [CONSTRAINT 外键名] FOREIGN KEY 字段名,[字段名2,....]
    REFERENCES 主表名 主键列1[,主键列2,...]
    
    

    示例:重新创建年纪表和班级表并在其之间建立主外键关系,让ClassInfo(班级信息)表中GradeID列的值关联到Grade(年纪)表的主键Gradeid。

    CREATE table Grade(
    id INT(11)AUTO_INCREMENT PRIMARY KEY ,-- 年级编号主键
    GradeName varchar(20), -- 年纪名称
    Major varchar(50)  -- 所属专业
    );
    
    -- 班级表
    create table classInfo(
    id int(11)AUTO_INCREMENT PRIMARY KEY ,
    className VARCHAR(9) not null,
    BeginTime YEAR not null,
    GradeID int,
    CONSTRAINT fk_grade_gradeid FOREIGN KEY(GradeID),REFERENCES Grade(GradeID)
    )
    

    使用非空约束

    非空约束指字段的值不能为空,对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统将会报错

    建表时设置非空约束的语法:

    字段名数据类型 not null
    

    示例: 在上面的classInfo表中已经使用非空约束。

    使用默认约束

    默认约束指定某列的默认值。

    建表时设置默认值约束的语法如下:

    字段名数据类型 default默认值
    

    示例: 创建学生表,并设置性别的默认值为“男”,户籍所在省默认为“河南”

    create table classInfo(
    id int(11)AUTO_INCREMENT PRIMARY KEY ,
    className VARCHAR(10) not null,
    Gender varchar(2) default '男',-- 性别默认值为男
    BeginTime YEAR not null,
    Age int -- 年龄
    Province varchar(10)Default '河南',
    GradeID int,
    CONSTRAINT fk_grade_gradeid FOREIGN KEY(GradeID),REFERENCES Grade(GradeID)
    )
    

    注意: 默认值只能约束一个列,不能在多个列上做约束,不能用于AUTO_INCREMENT列(自动增长)、TIMESTAMP列,如果对一个已经有数据的表添加默认约束,原来的数据不能得到默认值。

    使用唯一约束

    唯一约束:要求该列的值唯一,允许为空,但是只能出现一个空值。唯一约束可以确保一列或者多列不出现重复值

    唯一约束的语法规则如下:

    字段名数据类型 UNIQUE
    

    示例: 把学生表中的身份证号设为唯一约束

    create table classInfo(
    id int(11)AUTO_INCREMENT PRIMARY KEY ,
    className VARCHAR(10) not null,
    Gender varchar(2) default '男',-- 性别默认值为男
    BeginTime YEAR not null,
    Age int -- 年龄
    Province varchar(10)Default '河南',
    StudentNO varchar(18) not null UNIQUE,--学生身份证号唯一约束
    GradeID int,
    CONSTRAINT fk_grade_gradeid FOREIGN KEY(GradeID),REFERENCES Grade(GradeID)
    )
    
    展开全文
  • 随便记一点数据库

    2019-03-14 15:14:28
    属性:实体所具有属性,椭圆形表示,唯一属性是唯一可用来标识该实体实例属性,下划线表示,一般实体至少有一个唯一属性 关系:实体之间联系,菱形表示(一对一;一对多;多对多) 数据库中的键 超键—...
  • Orcal数据库

    2019-08-29 14:18:20
    Orcal 关系型数据库(关系型数据库模型作为为数据的组织方式) 1. 二维表 1. 由一组关系组成,每个关系的数据... 每一行表示一个记录,代表的是一个物理实体关系型数据库中,所有的数据都是通过表来存储的。...
  • Flask数据库

    2019-09-30 21:52:00
    Web应用普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示实体的数据...
  • 数据分析师职业生涯中,数据库与SQL会是他们性价比最高技能之一。...ID是数据库中重要概念,叫做唯一标识符/主键,用来表示数据唯一性。我们把它理解成数据身份证号。我知道身份证,也就知道数...
  • Web应用普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示实体的数据...
  • Web应用普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示实体的数据...
  • 3. 在数据库设计,将ER图转换成关系数据模型过程属于(逻辑设计阶段)。 4. 子模式DDL是用来描述(数据库局部逻辑结构)。5. 数据库设计概念设计阶段,表示概念结构常用方法和描述工具是(实体联系法和...
  • Flask之数据库设置

    2018-10-14 08:20:00
    Web应用普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示实体的数据...
  • 并且,最终说来,产生价值的并不是绚丽的界面和现代化的输入方式,而是存放在数据库中的数据。不幸的是,虽然关系型数据库历经了约30年的发展,有成熟的理论和大量的实践基础,但是,大多数设计、开发人员在设计...
  • 并且,最终说来,产生价值的并不是绚丽的界面和现代化的输入方式,而是存放在数据库中的数据。不幸的是,虽然关系型数据库历经了约30年的发展,有成熟的理论和大量的实践基础,但是,大多数设计、开发人员在设计...
  • ORM:对象-关系映射(OBJECT/RELATIONALMAPPING,简称ORM),是随着面向对象软件开发方法发展而产生。...ORM 技术是对象和关系之间提供了一条桥梁,前台对象型数据和数据库中的关系型数据通...
  • EA中用ER图生成数据库

    千次阅读 热门讨论 2016-03-31 19:56:11
    E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系方法,用来描述现实世界概念模型。 实体就是看见摸得着或者能被人感知接受认可客观存在,属性就是用来描述这个实体...
  • 数据库的常用命令2

    2020-07-14 15:22:00
    1.字段null与not null。 null:表示字段可以为null not null:表示字段不可为null ...一般情况下,我们创建通常将ID这类型字段设置为主键,每张表Java对应一个实体类,主键自动是非空约束
  • Flask操作数据库mysql

    2018-11-20 15:18:00
    Web应用普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示实体的数据...
  • neo4j图数据库学习

    2021-04-20 09:08:35
    图论中基本元素为节点和边,数据库中对应就是节点和关系。 图论:数学一个分支。以图为研究对象,由若干给定点和连接两点线索构成图形。 通常用来描述某些事物之间某种特定关系,用点代表...
  • (1)矩形表示实体集 (2)椭圆形表示属性 (3)菱形表示联系集 (4)直线用来连接属性和实体集,也用来连接实体集和联系集。 二. 三大范式内容: (1)第一范式:其目标是确保每列原子性。 (2)第二...
  • MySQL数据库知识点

    2015-10-16 11:49:00
    关系数据库,是建立关系模型基础上数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中各种实体以及实体之间各种联系均用关系模型来表示。 3.where 和 having 条件语句区别 ? ...
  • python - Flask- 数据库

    千次阅读 2017-09-03 20:04:15
    数据库的设置Web应用普遍使用的是关系模型的数据库,关系型数据库把所有的数据都存储,表用来给应用的实体建模,表的列数是固定的,行数是可变的。它使用结构化的查询语言。关系型数据库的列定义了表中表示...
  • 数据库中为什么要设置主键及其作用: 数据库主键,指的是一个列或多列的组合,其值能唯一的标识表中的每一行,通过它可强制表的实体完整性。 主键可以用来表示一个精确定位的特定的行,如果没有主键,你就无法精准...
  • 一.SQL Server 2008的...如何表示? 1.实体是客观存在并且可以相互区别的事物,实体可以是具体的事物,也可以是抽象的事物。 2.不同的事物是用不同的特征决定的,用来描述实体的特性称为实体的属性。 3.表...
  • 数据库(一)

    2020-03-20 20:15:28
    实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论属于概念设计阶段,形 成一个独立于机器,独立于 DBMS ER 图模型。 通常将它简称为 ER 图,相应地可把用 ER 图描绘数 据模型称为 ER ...
  • Neo4j图数据库介绍

    2015-08-25 20:34:00
    节点往往用来表示实体,节点可以被多个标签进行标记。最简单一个属性图是只有一个节点图,这个节点可以有多个键值对标记属性。关系通过连接节点来组织节点,一个联系有两个节点,开始节点和结束节点。这一点...
  • 实际关系数据库中的关系也称表。一个关系数据库就是由若干个表组成。(百度百科) 2.关系数据库: 由表( table )集合构成.每个表有唯一名字。 3.关系模型术语中,关系( relation )用来指代表,而元组...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 259
精华内容 103
关键字:

在数据库中用来表示实体的是