数据库实体和实体之间可以连线吗

数据库实体和实体之间可以连线吗,第1张

可以

1,数据库联系只能发生在 实体与实体 之间。

概念模型

2,

【实体】:客观存在 、可相互区分的现实世界对象的集合

例:职工 部门 课程 学生

【实例】: 实体中每个具体的记录值。

例:学生实体中的每个每个具体学生

【属性】: 实体所具有的某一特性(有“型”和“值”之分)

例:学号、姓名、性别、出生年份、系、入学时间(94002268,张三,男,1976,计算机系,1994)

【码】: 唯一标识实体的属性集

学号-------学生实体的码

94002268-------代表学生张三

【域】:属性的取值范围

性别:( 男,女)

学号:8位整数

3,表示方法:E-R图(实体联系图)

矩形:实体

椭圆形:属性

菱形:联系(发生在实体与实体之间)

连线(无向边)

4,两个实体型之间的三类联系:

1)一对一的联系(1:1)

2)一对多的联系(1:n)

3)多对多的联系(m:n)

MYSQL不支持E-R模型。(关系模型)

5,计算机世界:e-r模型转化为关系模型。

第一步,一个实体转化为一个关系。

第二步,实体属性作为关系的属性。

6,关系数据结构

关系:一张表

元组:表中的一行

属性:表中的一列

域: 属性的取值范围

分量:元组中的一个属性值

6,联系也可以具有属性,并且这些属性也要用无向边与该联系连接起来。

7*,一个属性涉及到多个实体时,不能单独的作为某个实体的属性,只能作为实体间联系的属性。

文章知识点与官方知识档案匹配

MySQL入门技能树数据库组成表

30094 人正在系统学习中

打开CSDN,阅读体验更佳

...规范、E-R图、模型图_风情客家__的博客_数据库模型图

1.需求分析:分析客户的业务和数据处理需求。 2.概要设计:设计数据库的E-R模型图,确认需求信息的正确和完整。 3.详细设计:应用三大范式审核数据库结构,将E-R模型图转换为数据库模型图。 4.代码编写:物理实现数据库,编码实现应用。

继续访问

设计E-R图和数据库模型图-powerdesigner_zxfly6的博客_数据...

设计E-R图和数据库模型图-powerdesigner 打开PowerDesigner,然后点击File-->New Model然后选择如下图所示的物理数据模型 (物理数据模型的名字自己起,然后选择自己所使用的数据库即可) (创建好主页面如图所示,但是右边的按钮和概念模型略有...

继续访问

数据库的设计(E-R图,数据库模型图,三大范式)

一.数据库设计的概念 数据库设计是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程. 二.数据库设计的重要性 如果一个数据库没有进行一个良好的设计,那么这个数据库完成之后他的缺点是: 1.效率会很低 2更新和检索数据时会出现很多问题, 反之,一个数据库被尽心策划了一番,具有良好的设计,那他的优点是: 1.效率会很高. 2.便于进一步扩展. 3.使得应用程序的开...

继续访问

数据库E-R图

目录 三个核心概念: 实体集 联系集 E-R模型就是实体-联系(entity-relationship)模型,旨在方便数据库的设计 三个核心概念: 实体集 实体是现实世界中可区别与所有其他对象的一个事物或者“对象”,比如大学里的每一个人都是一个实体。 实体集是相同类型即具有相同性质或属性的一个实体集合,比如大学里的所有学生的集合可以定义为实体集student。下图就是两个实体集。 实体集可以相交,比如一个person实体也可以同时是student实体,也可以是instructor实体.

继续访问

数据库的设计(E-R图,数据库模型图,三大范式)_灯初夜未央的博客-CSDN博 ...

三.设计数据库的步骤 1.需求分析阶段:分析客户的业务和数据处理需求. 2.概要设计阶段:他主要就是绘制数据库的E-R图. 3.详细设计阶段:应用数据库的三大范式进行审核数据库的结构. 总结:在进行数据库的系统分析时,都以下列4点位参考...

继续访问

数据库 之 概念模型-ER图_fffffffff_jj的博客_数据库...

将ER图导出为数据库表Step 1:将所有Entity, Relation =>Table Step 2: 去重 合并强实体集属性不变 弱实体集添上所依赖的主键(宿主实体集的) 复合属性 / 多值属性 联系集:实体集们的主键属性 + 自己的属性...

继续访问

数据库设计规范、E-R图、模型图

(1)数据库设计的优劣: 糟糕的数据库设计: ①数据冗余冗余、存储空间浪费。 ②数据更新和插入异常。 ③程序性能差。 良好的数据库设计 ①节省数据的存储空间。 ②能够保证数据的完整新。 ③方便进行数据应用系统的开发。 (2)软件项目开发周期中的数据库设计: 一个完整的项目 开发需要经过: 1.需求分析:分析客户的业务和数据处理需求。 2.概要设计:设计数据库的E-R模型图,确认需求信...

继续访问

MySQL数据库实验(四):E-R图实例讲解

目录 ER图成分构成 2 属性 3 联系 用处 E-R图转换成关系模式 1:1联系的转换 1:n联系的转换 m:n联系的转换 ER图成分构成 1 实体 实体是客观世界中存在的各种事物,或者某个抽象事件,我们都可以将其称之为实体。一方面,实体可以是现实世界中的课程实体、教师实体、学生实体、职工个体。总而言之,实体可以是现实集合中的一个子集,也可以是各种抽象的对象。 ...

继续访问

使用visio画数据库模型图_Together_CZ的博客

转自:使用visio画数据库模型图 这个星期由于项目的进度需要加紧,师兄让我把设计的数据库用visio制作出来供他修改,由于之前没有使用过visio这个工具,所以现在来学习一下。 一、新建vsd文件 打开visio,然后点击左上角的文件,然后点击如下图...

继续访问

visio2016 数据库模型图_数据库第七章--NoSQL数据库

HBASE数据库 HBase全称是Hadoop Database, 是一个构建在Apache Hadoop上的列式数据库 HBase是一个开源的非关系型分布式数据库(NoSQL),实现的编程语言为 Java 键值对数据库Redis 简介 KV:Key-Value(键值)存储模型是NoSQL中最基本的...

继续访问

【数据库原理系列】数据库E-R模型

E-R模型 设计中的抽象 不同层次抽象 现实层(客观存在) =>抽象层(观念世界/信息世界,描述现实世界的一种观点) =>…(信息世界的若干层抽象)… =>逻辑层(计算机世界:独立于物理设备) =>物理层(计算机世界:不同物理设备的具体实现) 越抽象,语义信息越少,概括性越高,越反映共性信息,表征的范围越大 检验抽象正确性的方法:能够依据现实抽象出来(抽象化),同时也能够依据抽象的信息和抽象规则还原为被抽象对象(具体化)。 基本思想数据模型与概念模型 表达计算机世界的

继续访问

数据库系统 - E-R模型

上图是一个E-R模型的例子,我们需要了解到的是矩形代表一个实体(表,视图等),椭圆形代表一个属性(字段,通过函数计算出的值),菱形代表实体与实体之间的关系。 在实际开发中往往是先画出局部的E-R图(一张表),然后再一步一步的合成出全局的E-R图。合成(集成)E-R图有两种方法:多个局部E-R图一次性合成,逐步合成,用累加的方式一次集成两个局部E-R图。 E-R模型转关系模式的原则: 1. 一个实体转成一个关系模式 如果是1:1的联系最少要转成2个关系模式(1个实体放一个关系,2个实体放2个...

继续访问

数据库导出数据模型图_ljs1196的博客_数据库生成数据...

本文介绍如何使用Visio工具将数据库导出其数据模型图 打开viso软件,点击“新建”-“软件和数据库”-“数据库模型图”,如下图中红色框中的步骤。 新建完成后,在viso菜单栏出现“数据库”菜单。点击菜单,选择反向工程。 驱动程序选择Mi

继续访问

使用Visio建立数据库模型视图(数据库模型图、数据视图)

1.在visio中新建数据库模型图 打开visio 2010,文件—>新建—>数据库—>数据库模型图。建立数据库模型图之后,菜单栏多出一个菜单项"数据库"。 看下图菜单栏多出了一个数据库项 2.依次画数据库建立的每张表、视图等 ...

继续访问

[自学]数据库ER图基础概念整理(转)

ER图

继续访问

生成业务数据模型图(SQLite + Navicat)

1.前言 由于实际要求,往往需要我们提供系统或数据库的业务数据模型,可以利用工具来绘制或生成。 2.sqlite + Navicat生成 简述下步骤, (如果已有数据库,可忽略该步骤)新建sqlite数据库,当然一个数据库可能有多个表,如果目标数据库有多个表的话,这里新建一个也可以,剩下的再Navicat中继续创建,当然也可以一次性建完。这里我用的DB Browser for SQLite软件。 打开Navicat,文件--》新建连接--》SQLite,然后选择刚刚创建的db文件 在Navica

继续访问

热门推荐 MySql数据库增删改查常用语句命令

文章目录增删改查语句库 *** 作表 *** 作增删改查实例准备表插入数据修改表数据删除表数据查询表数据常见的MySQL语句命令常见MySQL字段含义 增删改查语句 增删改查的语句命令为: *** 作 命令 增 insert 删 delete 改 update 查 select或者show 库 *** 作 *** 作 代码 创建数据库 create database shujuku...

继续访问

MySQL的E-R图

一、什么是E-R图 E-R图,全称:实体-关系模型图,是指通过实体、关系、属性三个基本概念,来概括数据的基本结构,从而描述静态数据结构的概念模式。 组成E-R图的3个核心要素:实体,属性,和关系 实体一般采用矩形来进行表示,属性使用椭圆来进行表示,而实体与实体的关系则通过菱形来进行表示,例如: 在E-R图中,可以通过菱形来描述多种实体关系,例如:1对1,1对多,多对多,自关联等 二、构建E-R图的目的 构建E-R图,属于软件开发流程中的需求设计阶段。 针对甲方所提的问题域,我们将分析其中实体对象的关系,确

继续访问

【MySQL】使用Visio绘制数据库关系模型图

使用Visio绘制数据库关系模型图 1 新建项目 文件—新建–软件和数据库—数据库模型图 点击后,出现如下界面: 2 绘制 左侧“实体关系”中将“实体”形状拖放到绘制界面,如下图 3 编辑实体名称,如下图: 4 编辑列 点击“列”如下图: 完成实体:客人信息表 GuestRecord,如下截图 完成实体:客房表Room(同上 *** 作),如下图 5 关系绑定 5.1添加 列RoomID到客人信息表 5.2 将“实体关系”中的关系工具拖放到某个实体上(鼠标不松开),直到该实体边框变红色,松开;箭头指

继续访问

概念数据模型(E-R模型)

概念数据模型(E-R模型) 概念数据模型是现实世界第一层次的抽象,是数据库设计人员和用户交流的工具,因此要求概念数据模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面应该简单、直观和清晰,能为不具备专业知识或者专业知识较少的用户所理解。 概念数据模型的表示方法很多,其中最常用的是P.P.S. Chen于1976年提出的实体-联系方法(Entity Relationship Approach),简称E-R方法或E-R模型。E-R模型用E-R图来抽象表示现实世界中客观事物及

继续访问

最新发布 E-R模型

E-R(Entity-Relationship)数据模型,即实体(每一个数据表就表示一个实体)- 联系(即关系,不同的数据表之间需要有这样那样的关系)数据模型。

继续访问

数据库三大范式、E-R图

第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性; 例如:userInfo:山东省烟台市 131777368781 userAds:山东0省烟台市 userTel:131777368781 第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描...

继续访问

MySQL利用E-R模型的数据库概念设计

采用E-R模型进行数据库的概念设计,可以分成3步进行:首先设计局部E-R模型,然后把各局部E-R模型综合成一个全局E-R模型,最后对全局E-R模型进行优化,得到最终的E-R模型,即概念模型。

继续访问

mysql物理建模_物理模型图-数据库图

1.新建物理模型图 File ----New Model----infomation---Physical Data1:打开PowerDesigner,然后点击File-->New Model然后选择如下图所示的物理数据模型(物理数据模型的名字自己起,然后选择自己所使用的数据库即可)(创建好主页面如图所示,但是右边的按钮和概念模型略有差别,物理模型最常用的三个是table(表),view(...

继续访问

物理模型图-数据库图

1.新建物理模型图 File ----New Model----infomation---Physical Data 1:打开PowerDesigner,然后点击File-->New Model然后选择如下图所示的物理数据模型 (物理数据模型的名字自己起,然后选择自己所使用的数据库即可) (创建好主页面如图所示,但是右边的按钮和概念模型略有差别,物理模型最常用的三个是table...

继续访问

mysql数据库逻辑模型图,MySQL逻辑架构

上图(图是百度找的)msql_en.jpgmsql_en.jpgmysql逻辑架构:连接层、服务层、引擎层、存储层,四层。Connectors连接,指不同语言与数据库的交互,比如:java里的JDBCManagement Serveices &Utilities系统管理和控制工具Connection Pool连接池,管理缓冲用户连接,线程处理等需要缓存的需求。负责监听对MySQL Ser...

继续访问

MySQL数据库第3讲 数据库数据模型

MySQL数据库的数据模型 在学习MySQL数据库之前,我们需要先了解一下MySQL数据库的数据模型 这样我们就能初步了解MySQL中的数据是如何存储的。 那么先来给大家介绍一个概念 1 关系型数据库RDBMS 关系型数据库就是指建立在关系模式的基础上,由多张互相连接的二维表格组成的数据库。 MySQL数据库就是一个关系型数据库。 那什么是二维表呢? 其实这个指的就是由行和列构成的数据表格,比如我们生活中常见的部门表、员工表等等 而且可以看到员工表中的“所属部门编号”与部门表中的“部门编号”还有着关联关系

继续访问

数据库模型图

数据库

mysql

探索和学习MySQL中GIS相关功能和特性

这里记录了学习和了解MySQL中GIS特性相关内容的过程。

MySQL官方论坛中GIS的举例

测试数据已经导入成功,下面开始对GIS相关函数和GEOHASH进行了解和体验;

mysql中geometry类型的简单使用

MySQL空间数据类型

经纬度信息存储在geometry格式的字段中,该字段必须非空。

MySQL8.0前按照longitude-latitude的顺序存储位置

MySQL8.0前按照longitude-latitude的顺序存储位置

MySQL8.0前按照longitude-latitude的顺序存储位置

插入数据时候可使用如下语句:

MySQL存储geometry信息的方式采用了25bytes,相比WKB的21bytes,多了4bytes的坐标系表示,组成部分如下:

WTF字符串格式说明

select ST_GeomFromText(WTF格式字符串)

WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。通过WTF字符串生成geometry的方法:

点: POINT(x y)

线: LINESTRING(x1 y1, x2 y2, x3 y3...)

多边形: POLYGON((0 0, 10 0, 10 10,0 10,0 0),(5 5,7 5,7 7,5 7,5 5))

多点集: MULTIPOINT(0 0, 20 20, 60 60) 或 MULTIPOINT((0 0),(5 5),(5 0))

多线集: MULTILINESTRING((10 10, 20 20), (15 15, 30 15))

多多边形集: MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((5 5,7 5,7 7,5 7, 5 5)))

例如两点一线组成的几何集: GEOMETRYCOLLECTION(POINT(10 10), POINT(30 30), LINESTRING(15 15, 20 20))

A geometry is syntactically well-formed if it satisfies conditions such as those in this (nonexhaustive) list:

Collections are not empty (except GeometryCollection)

更多内容参见

ST_PointFromText('POINT(X Y)')

ST_LineStringFromText('LINESTRING(0 0,1 1,2 2)')

ST_PolygonFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7,5 5))')

ST_GeomCollFromText()

更多内容参见

参见

Point(x,y)

LineString((x1,y1),(x2,y2)...)

Polygon(LineString(),LineString()....)

参见

ST_AsText()

ST_AsBinary()

ST_AsWKT()

参见

ST_Dimension(geom) :返回geom的维度(-1,0,1,2)

ST_Envelope(geom) :返回geom的最小外接矩形(MBR)

ST_GeometryType(geom) :返回geom的类型

ST_IsEmpty(geom) :该函数并不能真实的判空,当geom为任何有效的几何值时返回0,无效的几何值返回1;

ST_IsSimple(geom) :当geom无任何异常几何点返回1(如自相交和自切线等),否则返回0

ST_SRID(geom) :返回geom的坐标系ID

参见

ST_X(Point) :获取Point的X值

ST_Y(Point) :获取Point的Y值

参见

ST_StartPoint(linestrng) : 线的起点

ST_EndPoint(linestring) :返回线的最后一个点

ST_IsClosed(linestring或multilinestring) :线是否闭合(若为线,则判断起点与终点是否一致;若为线组,则判断组内每个元素是否符合闭合线)

ST_Length(linestring) :返回线的长度,若入参为线集,则返回集合内所有长度的和

ST_NumPoiints(linestring) :返回点的数量;

ST_PointN(linestring,N) :返回第N个点(从1开始)

参见

具体不在一一列举,主要有计算多边形面积、中心点、最小外接圆,最大内接圆等函数,列举几个可能会用到的:

ST_Area(Poly|mPoly) :返回双精度的面积或面积的和

'ST_Centroid(Poly|mPoly)':返回数学上的中心点

ST_ExteriorRing(Poly) :返回外接圆

参见

ST_Buffer说明

不再列举,主要有:ST_Buffer(不懂干啥用),ST_ConvexHull(geom)凸包,ST_Dfference(g1,g2)比较差异,ST_Intersecton(g1,g2)交叉点,ST_SymDifference(g1,g2)对称差分,ST_Union(g1,g2)连接、合并等。

检查geometry Objects之间的空间关系的方法。

参见

计算两个Object之间的空间关系的函数,有两个间距离、相交、不相交,包含、相等、相切、重叠、接触、在内等等空间关系。下面列举几个可能会常用的方法:

ST_Contains(g1,g2) :g1是否完全包含g2

ST_Within(g1,g2) :g1是否包含于g2中

ST_Distance(g1,g2) :返回g1和g2之间的距离,已坐标单位计算的

ST_Equals(g1,g2) :返回g1和g2是否相等

参见

MBRContains(g1,g2) :g1的mbr是否包含g2的mbr

MBRWithin(g1,g2) :g1的mbr是否在g2的mbr内

MBRCoveredBy(g1,g2) :g1的mbr是否被g2的mbr覆盖

MBRCovers(g1,g2) :g1的mbr是否覆盖g2的mbr

MBRDisjoint(g1,g2) :g1的mbr,g2的mbr是否不相交

MBRIntersects(g1,g2) :g1mbr,g2mbr是否相交

MBREqual(g1,g2) :g1的mbr,g2的mbr的外接是否相等

MBREquals(g1,g2) :g1的mbr,g2的mbr的外接是否相等

MBROverlaps(g1,g2) :g1mbr、g2mbr

其他函数请参看原文

GeoHash介绍

GeoHash Wiki百科

MySQL中自带函数 st_geohash(longtude,latitude,max_length) 或 st_geohash(point, max_length) 即可生成某一点的geohash值。

返回一个geohash字符串中的latitude或longitude

返回一个geohash解析出的point数据

官方文档

通过geometry生成一个GeoJSON Object, select st_asgeojson(geometry,max_length,options)

通过GeoJSON生成GeoMetry对象。

ST_GeomFromGeoJSON(jsonstring, [options [, srid]])

具体使用方法参见官方文档

官方文档

MySQL中提供的方便空间运算的函数们

select ST_Distance_Spher(geomPoint1,geomPoint2 [, radius])

此方法用于计算两点或多个点之间的地球上的距离(是地球球面距离而不是直线距离),返回单位为米,

select ST_IsValid(ST_GeomFromText('LINESTRING(0 0,1 1)'))

判断入参是否是符合地理位置描述的格式。返回1(符合)或者0(不符);

例如:

返回0:

select st_isvalid(st_geomfromtext('linestring(0 0, -0.00 0, 0.0 0)')

返回1:

select st_isvalid(st_geomfromtext('linestring(0 0,1 1)')

select st_astext(st_makeenvelope(pt1, pt2))

返回两点构成的包络。(此计算是基于笛卡尔坐标系而非球面)

例如:

SELECT ST_AsText ( st_makeenvelope ( st_geomfromtext ( 'point(0 0)' ), st_geomfromtext ( 'point(1 1)' ) ) )

返回结果:

POLYGON((0 0,1 0,1 1,0 1,0 0))

效果说明

JS抽稀算法

select st_simplify(geometry, max_distance)

用道格拉斯-普克算法(抽稀函数)简化geometry,并返回与原格式相同格式的结果。

例如,以下点集拟合为直线,步长0.5:

SELECT st_simplify ( st_geomfromtext ( 'LINESTRING(0 0,0 1,1 1,1 2,2 2,2 3,3 3)' ), 0.5 )

返回结果:

LINESTRING(0 0, 0 1, 1 1, 2 3, 3 3)

再如,步长1.0:

SELECT st_simplify ( st_geomfromtext ( 'LINESTRING(0 0,0 1,1 1,1 2,2 2,2 3,3 3)' ), 1.0 )

返回结果:

LINESTRING(0 0, 3 3)

SELECT ST_Validate(geometry)

验证geometry是符合正确的地理位置信息格式。例如 Point(0 0) 是合格的; Linestring(0 0) 是非法的; Linestring(0 0, 1 1) 是合格的

了解了上述MySQL中关于集合对象的功能,下面来实践一下

由上面geohash长度-精度对应表可知,前6位表示±610米左右的误差,这里先查询前六位范围之后再用上述方法精确筛选一次即可:

可将上述查询方法封装为MySQL函数方便和简化程序调用.

该方法是运用了内置的几何关系运算函数 ST_Contains 和 ST_MakeEnvelop 来实现的,0.5对应大概500米左右的范围,具体如下;

链接: https://pan.baidu.com/s/1cW-kv6DIgtYMw5I3bNFzKA

提取码: jagn


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6194193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存