你把主码和外键都给出了,不就是把表都定义好了吗?那它们的关系肯定已经是清楚的了。你的问题不是设计,而是反推设计过程。
(1)学生、医生、药品,这肯定都是实体;
(2)药房,有“位置”属性,还和医生、药品有复杂的联系,所以也应该是实体;
而药房-医生这个1:n的联系,已经归并为后者的属性了;
(3)医疗记录:应该是医生-学生间的一种联系——诊疗;这是一个m:n的联系,还具有“时间”、“费用”、“处方”等属性,所以就转化成现在的表了;
(4)处方:应该医疗记录的一个属性。如果它有复杂的内部结构,就可以作为一个单独实体。但从你设计的表来看,它的几个属性都已经在医疗记录中包含了。所以你得想想,有必要把它分离出来吗?
(5)库存量:是从药房-药品这个m:n联系转化来的;
(6)过敏药物:是药品-学生-处方间的m:n:1联系;(不过从这个关系看,似乎不应该叫做“过敏药物”,而应该叫做“过敏记录”,你觉得呢?)
最后说一点:处方和医疗记录、过敏药物间的关系不是很清楚,你最好再优化一下。
当咱们设计一个关系型数据库时,着手点是系统中的对象(Entities),再为对象加上属性描述,从而转换为表设计。在关系型数据库中咱们不会考虑表的行,由于肯定表的字段名称以后,数据逐行写入,数据库会管理行数据空间。数据库
宽行仍是窄行(Wild Rows or Skinny Rows)apache
但在Cassandra里,咱们必须在设计时考虑列族的行数,这取决于定义的列的数目。一般会有两种选择:数据结构
宽行(Wild Rows):在每行中包含数量巨大(一般会达到百万 级之多)的列,但只有不多的行数;less
窄行(Skinny Rows):比较像关系型数据库的使用方法,有少许较为固定的列,使用不一样、不断增长的行来存储。数据库设计
列排序(Column Sorting)ide
Cassandra不支持查询语言,也不支持查询时使用Order By对数据进行排序,排序是须要设计时考虑。在定义列族时,能够包含一个名为CompareWith的元素,这个元素决定了此列族的排序规则。Cassandra提供的排序支持如下几种数据类型,包含了字符、字节、数字和日期时间:AsciiType, BytesType, LexicalUUIDType, Integer Type, LongType, TimeUUIDType, or UTF8Typeui
设计原则(Design Principles)spa
Cassandra的数据结构设计与关系型数据库彻底不一样,核心有三大设计原则:物化视图、无值列和复合键。设计
物化视图(Materialized View)rest
在关系型数据库中,咱们一般会使用Where条件查询表的部分结果集,好比咱们设计了Users表,有一个City字段,而后使用Where City = 'New York'来进行查询。
SELECT FROM USERS WHERE CITY = "New York"
在Cassandra中,咱们会直接建立一个新的列族名为CityUsers,以City为行名称,列为全部在这个City中的Users
$ create column family CityUser;
$ set CityUsers["NewYork"]["UserID"] = "1, 2, 3, 4";
这在Cassandra里是一种很是广泛和常见的设计,物化视图为查询而设计一份映射数据,而不是从原始数据中去寻找。
无值列(Valueless Column)
以上面的Users/CityUsers为例,咱们设计了行名为City,列为Users的列族,由于数据是从Users列族中映射过来的,其实咱们并不须要为列指定内容,它能够直接引用Users表中的数据。
复合键(Aggregate Key)在《Cassandra – 理解关键概念和数据模型》为你们介绍过复合键的用法,在Cassandra中,大量使用复合键也是设计原则之一。 在设计Cassandra数据结构时,应当紧紧把握的两点:
从查询开始:Cassandra不是为对象而设计,而是为查询而设计。先看看系统中须要的查询是什么样的,再着手设计;
系统时间:由于Cassandra的列结构包含时间戳,因此你必须考虑从不一样客户端过来的时间格式,有必要指定一个统一的标准时间,固然,这将带来本地时间转换问题。
数据设计示例(Data Design Sample)
需求
查询指定地区的酒店
查询指定酒店的信息,包括名称和所在地区
查询酒店附近有趣的地点
查询指定日期区间可预订的房间
查询房间的评分
提交客户信息预订房间
关系型数据库设计
Screen Shot 2013-12-01 at 103208 AM
Cassandra数据结构设计
Screen Shot 2013-12-01 at 103412 AM
设计思路:
建立数据库结构;
建立酒店和附近场所的数据结构。酒店是普通列族,附近场所是超级列族;
查询指定地区的酒店,使用第二簇索引完成;
查询一个酒店,而后查询附近场所;
预订酒店时,向Reservation列族写入行数据。
Cassandrayaml
keyspaces:
- name: Hotelier
replica_placement_strategy: orgapachecassandralocatorRackUnawareStrategy
replication_factor: 1
column_families:
- name: Hotel
compare_with: UTF8Type
- name: HotelByCity
compare_with: UTF8Type
- name: Guest
compare_with: BytesType
- name: Reservation
compare_with: TimeUUIDType
- name: PointOfInterest
column_type: Super
compare_with: UTF8Type
compare_subcolumns_with: UTF8Type
- name: Room
column_type: Super
compare_with: BytesType
compare_subcolumns_with: BytesType
- name: RoomAvailability
column_type: Super
compare_with: BytesType
compare_subcolumns_with: BytesType
本文参考自《Cassandra: The Definitive Guide》
原文连接:Cassandra – 数据结构设计概念和原则
相关文章
1 数据库 - 概念结构设计
2 数据库设计----概念结构设计(概念模型、E—R模型、概念结构设计)
3 数据库原理 概念结构设计的方法
4 数据库原理(十 一)- 概念结构设计
5 数据库结构设计概念设计
6 数据库设计(1)_概念结构设计
7 数据库原理概念结构、逻辑结构设计案例
8 数据库原理 概念结构设计-E-R图及其设计
9 设计模式-----原则概念
10 数据库学习笔记(四)数据库设计——概念结构设计
更多相关文章
• 数据库是什么?数据库的概念 - MySQL教程
• Web 创建设计 - 网站建设指南
• TiDB 在摩拜单车在线数据业务的应用和实践
• Flink 数据传输及反压详解
可以
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前言 由于实际要求,往往需要我们提供系统或数据库的业务数据模型,可以利用工具来绘制或生成。 2sqlite + 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 关系绑定 51添加 列RoomID到客人信息表 52 将“实体关系”中的关系工具拖放到某个实体上(鼠标不松开),直到该实体边框变红色,松开;箭头指
继续访问
概念数据模型(E-R模型)
概念数据模型(E-R模型) 概念数据模型是现实世界第一层次的抽象,是数据库设计人员和用户交流的工具,因此要求概念数据模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面应该简单、直观和清晰,能为不具备专业知识或者专业知识较少的用户所理解。 概念数据模型的表示方法很多,其中最常用的是PPS 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_enjpgmsql_enjpgmysql逻辑架构:连接层、服务层、引擎层、存储层,四层。Connectors连接,指不同语言与数据库的交互,比如:java里的JDBCManagement Serveices & Utilities系统管理和控制工具Connection Pool连接池,管理缓冲用户连接,线程处理等需要缓存的需求。负责监听对MySQL Ser
继续访问
MySQL数据库第3讲 数据库数据模型
MySQL数据库的数据模型 在学习MySQL数据库之前,我们需要先了解一下MySQL数据库的数据模型 这样我们就能初步了解MySQL中的数据是如何存储的。 那么先来给大家介绍一个概念 1 关系型数据库RDBMS 关系型数据库就是指建立在关系模式的基础上,由多张互相连接的二维表格组成的数据库。 MySQL数据库就是一个关系型数据库。 那什么是二维表呢? 其实这个指的就是由行和列构成的数据表格,比如我们生活中常见的部门表、员工表等等 而且可以看到员工表中的“所属部门编号”与部门表中的“部门编号”还有着关联关系
继续访问
数据库模型图
数据库
mysql
reference room
资料室
resource center纠错
资料室
文学与传媒学院资料室,是学校图书资料系统的重要组成部分,承担着本院图书资料的采购、文献信息资料的搜集、整理、 存储、开发、传递和利用,并为本院教师、学生提供咨询和服务的任务,也是本院开展教学、科研重要活动的专业书刊阅览场所。
文学与传媒学院资料室始建于1980年,其前身是泰安师专中文系资料室。三十多年来,在校系领导及社会各界的关心和支持下,通过数位资料室工作人员的辛勤努力,逐步建成收藏以汉语言、中外文学、新闻传媒为主,边缘学科为辅的专业图书资料室。
资料室藏书丰富,专业资料种类齐全。现有图书26003册,期刊1025种,过期期刊5万余册,电子光盘292张,磁带32盒,报纸20余种。另有解放前至现在的期刊1000余种,过刊合订本万余册。一些解放前的原版期刊,如《文学》、《文学季刊》、《论语》、《戏剧月刊》等,属资料室的珍藏。重要图书还有《钦定四库全书荟要》等。各专业的工具书也都门类齐全。还同国内200多家高校或科研单位建立了资料信息交换关系。资料室现有面积约460多�,阅览座位70余个,书库6个。
资料室连通了校园网,可为本院的教师和高年级的学生检索《中国期刊网数据库》、《中国人民大学复印报刊资料全文数据库》、《全国报刊索引》、《超星数字图书馆》等我校图书馆的数据库和网上其他高校和科研院所图书馆的免费电子图书信息资源、网上免费电子期刊信息资源、以及考研等信息资源。
为了实现图书资料的资源共享,资料室制定了图书资料数据库编制工作的长远规划,购买安装了适用于本室的图书资料管理系统,并对原有的图书资料进行重新分类、编排、加工、整理。已建成的图书文献数据库有:《文学与传媒学院资料室图书存放位置数据库》、《文学与传媒学院资料室图书编目数据库》、《文学与传媒学院资料室图书检索数据库》、《过期期刊数据库》、《过期期刊存放位置数据库》等等。这些数据库的建立,使教师、学生非常便利地查阅到所需要的图书资料,缩短查询时间,提高工作效率。
资料室工作人员,专职从事资料室工作三十余年,既具有扎实的汉语言文学专业的知识,又在长期的资料管理中积累掌握了丰富的图书信息管理专业的知识和工作经验,既能使图书资料的管理科学化、规范化,也能为师生提供优质、高效的信息咨询服务。
//建立和数据库的连接
string
connectionstring=
stringformat("data
source={0};initial
catalog={1};persist
security
info=true;user
id={2};password={3};",
sdatabaseip,sdatabasename,sdatabaseusername,
sdatabasepwd);
sqlconnection
cnn
=
new
sqlconnection(connectionstring);
cnnopen();
string
sql
=
"你的查询语句";
sqlcommand
cmd
=
new
sqlcommand(sql,cnn);
sqldataadapter
da=
new
sqldataadapter(cmd);
dataset
ds
=
new
dataset();
dafill(ds);
datatable
dt
=
dstables[0];//结果在这个table里,把它作为数据源就好了
cnnclose();
create table roomtype --(客房标准信息表)
--列名 中文说明 数据类型 精度 允许空值 说明
(Typeid Char(2) primary key, --客房类型编号 关键字
typename Char(20) --客房类型
Area Numeric(6,2)-- 面积
Bednum Tinyint([0],[1]) --床位数量
price Money default 100 --单价
Htelephone Char(2) default '有' --默认“有” 是否有电话
)
以上就是关于数据库逻辑设计:区分下面例子中的实体与联系全部的内容,包括:数据库逻辑设计:区分下面例子中的实体与联系、valuelesscolumn的好坏、数据库实体和实体之间可以连线吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)