数据库设计大题详解

大题一:画E-R图(概念结构设计)

实体就是具体的物品,关系就是实体之间的关系,属性就是特征,内涵的意思

简单的小栗子:

1对1,1对n,n对m,自己考虑两者存在这个关系时可能的数量,n和m是象征性符号,代表有很多

但是并没有写完,属性我们是要记得画的,完善后如下:

在属性中,编号是必备的,因为是唯一确定实体的,其他的可以按照题目要求和自身的经历来写

大题二:E-R图转换为关系模型

1.将实体的名字转换为关系模式的名字

2.实体的属性就是关系的属性,实体的码(主码,一般就是编号之类的)就是关系的码

3.联系之间的转换:

        1对1:任意一方的主码作为外码加入另一方,并在另一方中加入联系本身的属性

例如:A与B是1对1的,A中含有属性a和b,a是主码,B中含有c和d,c是主码,两者联系有属性e,我们可以将a作为外码加入B中,并在B中加入e,此时B中含有c,d,a,e,c是主码,a是外码

        1对n:将1中的主码作为外码加入n,并在n中加入联系本身的属性

        n对m:将两者的联系单独出来,并将两者的主码都放入联系中结合作为主码,并将联系的属性放入联系中

例如:A与B是n对m的,A中含有属性a和b,a是主码,B中含有c和d,c是主码,两者联系有属性e,我们单独创建一个关系模型C,将a和c放入C中作为主码,e放入C中,得到一个新的关系模型C,含有a,c,e,它的主码是a和c

补充:不同层次数据模型转换方案和鸟足图(CDM,LDM,PDM)

PDM就是关系模型,CDM/LDMPDM的转换其实就是E-R模型到关系模型的转换。有的地方要求画出具体的图像,而不是简单写出转换的内容,我们要化成表的形式。

包括E-R图,我们学校很喜欢用鸟足图来表示,如果你觉得麻烦,还是用之前的吧。

由于可能会考鸟足图,我们在这里补充一下个人认为并不聪明的鸟足图的部分图像

联系的连接是这样画的

还有一些扩展:

这个是看分组的两个是否可以同时出现,也就是是否互斥

这个是看分组的能否完全表示整体

还有强实体和弱实体,看是否存在依赖关系

习题练习:

数据库考点之数据库设计(综合大题)_数据库综合大题-CSDN博客

数据库题目之数据库设计_数据库设计题目-CSDN博客

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库中,split函数是用于将字符串按照指定的分隔符进行分割,并返回分割后的字符串数组。在不同的数据库中,该函数的用法可能存在差异。以下是一些常见数据库中split函数的用法: 1. MySQL 在MySQL中,split函数被称为SUBSTRING_INDEX函数。其语法如下: SUBSTRING_INDEX(str, delim, count) 其中,str为要分割的字符串,delim为分隔符,count为返回的子字符串的数量。如果count为正数,则从左往右取;如果count为负数,则从右往左取。例如: SELECT SUBSTRING_INDEX('a,b,c,d,e', ',', 2); // 返回 'a,b' 2. SQL Server 在SQL Server中,split函数需要自定义。可以使用递归CTE(公共表表达式)来实现。例如: WITH Split(str, start, pos, value) AS ( SELECT str, 1, CHARINDEX(',', str), SUBSTRING(str, 1, CHARINDEX(',', str) - 1) FROM mytable UNION ALL SELECT str, pos + 1, CHARINDEX(',', str, pos + 1), SUBSTRING(str, pos + 1, CHARINDEX(',', str, pos + 1) - pos - 1) FROM Split WHERE pos > 0 ) SELECT value FROM Split WHERE str = 'a,b,c,d,e'; 3. Oracle 在Oracle中,split函数可以使用REGEXP_SUBSTR函数来实现。其语法如下: REGEXP_SUBSTR(str, pattern, start, occurrence) 其中,str为要分割的字符串,pattern为分隔符,start为起始位置,occurrence为要返回的子字符串的序号。例如: SELECT REGEXP_SUBSTR('a,b,c,d,e', '[^,]+', 1, 2) FROM dual; // 返回 'b' 4. PostgreSQL 在PostgreSQL中,split函数可以使用string_to_array函数来实现。其语法如下: string_to_array(str, delim) 其中,str为要分割的字符串,delim为分隔符。例如: SELECT string_to_array('a,b,c,d,e', ',') FROM mytable; // 返回 '{a,b,c,d,e}'

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值