建设手机网站包括哪些费用吗做淘宝客优惠券网站还是APP赚钱

news/2025/9/23 20:41:21/文章来源:
建设手机网站包括哪些费用吗,做淘宝客优惠券网站还是APP赚钱,济南seo网站排名关键词优化,英文网站群建设ER TO SQL语句的转换#xff0c;在数据库设计生命周期的位置如下所示。 一、转换的类别 从ER图转化得到关系数据库中的SQL表#xff0c;一般可分为3类#xff1a; 1#xff09;转化得到的SQL表与原始实体包含相同信息内容。该类转化一般适用于#xff1a; 二元“多对多”关…  ER TO SQL语句的转换在数据库设计生命周期的位置如下所示。   一、转换的类别 从ER图转化得到关系数据库中的SQL表一般可分为3类 1转化得到的SQL表与原始实体包含相同信息内容。该类转化一般适用于 二元“多对多”关系中任何一端的实体 二元“一对多”关系中“一”一端的实体 二元“一对一”关系中某一端的实体 二元“多对多”回归关系中任何一端的实体注关系两端都指向同一个实体 三元或n元关系中任何一端的实体 层次泛化关系中超类实体 2 转化得到的SQL表除了包含原始实体的信息内容之外还包含原始实体父实体的外键。该类转化一般适用于 二元“一对多”关系中“多”一端的实体 二元“一对一”关系中某一端的实体 二元“一对一”或“一对多”回归关系中任何一端的实体 该转化是处理关系的常用方法之一即在子表中增加指向父表中主键的外键信息。 3由“关系”转化得到的SQL表该表包含“关系”所涉及的所有实体的外键以及该“关系”自身的属性信息。该类转化一般适用于 二元“多对多”关系 二元“多对多”回归关系 三元或n元关系 该转化是另一种常用的关系处理方法。对于“多对多”关系需要定义为一张包含两个相关实体主键的独立表该表还能包含关系的属性信息。   转化过程中对于外键NULL值的处理 1. 当实体之间的关系是可选的SQL表中的外键列允许为NULL。 2. 当实体之间的关系是强制的SQL表中的外键列不允许为NULL。 3. 由“多对多”关系转化得到的SQL表其中的任意外键列都不允许为NULL。     二、普通二元关系的转化 1. “一对一”两实体都为强制存在 当两个实体都是强制存在的如图1所示每一个实体都对应转化为一张SQL表并选择两个实体中任意一个作为主表把它的主键放入另一个实体对应的SQL表中作为外键该表称为从表。 图1  “一对一”两实体都为强制存在 图1表示的语义为每一张报表都有一个缩写每一缩写只代表一张报表。转化得到的SQL表定义如下 create table report (report_no integer,report_name varchar(256),primary key(report_no) ); create table abbreviation (abbr_no char(6),report_no integer not null unique,primary key(abbr_no),foreign key(report_no) references report on delete cascade on update cascade );  2. “一对一”一实体可选存在另一实体强制存在 当两个实体中有一个为“可选的”则“可选的”实体对应的SQL表一般作为从表包含指向另一实体的外键如图2所示。 图2  “一对一”一实体可选存在另一实体强制存在 图2表示的语义为每一个部门必须有一位经理大部分员工不是经理一名员工最多只能是一个部门的经理。转化得到的SQL表定义如下 create table employee (emp_id char(10),emp_name char(20),primary key(emp_id) ); create table department (dept_no integer,dept_name char(20),mgr_id char(10) not null unique,primary key(dept_no),foreign key(mgr_id) references employee on update cascade );   另一种转化方式是把“可选的”实体作为主表让“强制存在的”实体作为从表包含外键指向“可选的”实体这种方式外键列允许为NULL。以图2为例可把实体Employee转化为从表包含外键列dept_no指向实体Department该外键列将允许为NULL。因为Employee的数量远大于Department的数量故会占用更多的存储空间。   3. “一对一”两实体都为可选存在 当两个实体都是可选的如图3所示可选任意一个实体包含外键指向另一实体外键列允许为NULL值。 图3  “一对一”两实体都为可选存在 图3表示的语义为部分台式电脑被分配给部分工程师一台电脑只能分配给一名工程师一名工程师最多只能分配到一台电脑。转化得到的SQL表定义如下   create table engineer (emp_id char(10),emp_name char(20),primary key(emp_id) ); create table desktop (desktop_no integer,emp_id char(10),primary key(desktop_no),foreign key(emp_id) references engineeron delete set null on update cascade ); 4. “一对多”两实体都为强制存在 在“一对多”关系中无论“多”端是强制存在的还是可选存在的都不会影响其转化形式外键必须出现在“多”端即“多”端转化为从表。当“一”端实体是可选存在时“多”端实体表中的外键列允许为NULL。 图4  “一对多”两实体都为强制存在 图4表示的语义为每名员工都属于一个部门每个部门至少有一名员工。转化得到的SQL表定义如下 create table department (dept_no integer,dept_name char(20),primary key(dept_no) ); create table employee (emp_id char(10),emp_name char(20),dept_no integer not null,primary key(emp_id),foreign key(dept_no) references departmenton update cascade ); 5. “一对多”一实体可选存在另一实体强制存在 图5  “一对多”一实体可选存在另一实体强制存在 图5表示的语义为每个部门至少发布一张报表一张报表不一定由某个部门来发布。转化得到的SQL表定义如下 create table department (dept_no integer,dept_name char(20),primary key(dept_no) ); create table report (report_no integer,dept_no integer,primary key(report_no),foreign key(dept_no) references departmenton delete set null on update cascade );   注解释一下report表创建脚本的最后一行“on delete set null on update cascade”的用处。当没有这一行时更新department表中dept_no字段会失败删除department中记录也会失败报出与外键约束冲突的提示。如果有了最后一行更新department表中dept_no字段report表中对应记录的dept_no也会同步更改删除department中记录会使report表中对应记录的dept_no值变为NULL。   6. “多对多”两实体都为可选存在 在“多对多”关系中需要一张新关系表包含两个实体的主键。无论两边实体是否为可选存在的其转化形式一致关系表中的外键列不能为NULL。实体可选存在在关系表中表现为是否存在对应记录而与外键是否允许NULL值无关。 图6  “多对多”两实体都为可选存在 图6表示的语义为一名工程师可能是专业协会的会员且可参加多个专业协会。每一个专业协会可能有多位工程师参加。转化得到的SQL表定义如下 create table engineer (emp_id char(10),primary key(emp_id) ); create table prof_assoc (assoc_name varchar(256),primary key(assoc_name) ); create table belongs_to (emp_id char(10),assoc_name varchar(256),primary key(emp_id, assoc_name),foreign key(emp_id) references engineeron delete cascade on update cascade,foreign key(assoc_name) references prof_assocon delete cascade on update cascade );   三、二元回归关系的转化 对于“一对一”或“一对多”回归关系的转化都是在SQL表中增加一列与主键列类型、长度相同的外键列指向实体本身。外键列的命名需与主键列不同表明其用意。外键列的约束根据语义进行确定。 1.  “一对一”两实体都为可选存在   “一对一”两实体都为可选存在 图7表示的语义为公司员工之间可能存在夫妻关系。转化得到的SQL表定义如下 create table employee (emp_id char(10),emp_name char(20),spouse_id char(10),primary key(emp_id),foreign key(spouse_id) references employee );   2. “一对多”“一”端为强制存在“多”端为可选存在   “一对多”“一”端为强制存在“多”端为可选存在 图8表示的语义为工程师被分为多个组每个组有一名组长。转化得到的SQL表定义如下 create table engineer (emp_id char(10),leader_id char(10) not null,primary key(emp_id),foreign key(leader_id) references engineer );     “多对多”回归关系无论是可选存在的还是强制存在的都需新增一张关系表表中的外键列须为NOT NULL。 3. “多对多”两端都为可选存在 “多对多”两端都为可选存在 图9表示的语义为社交网站中人之间的朋友关系每个人都可能有很多朋友。转化得到的SQL表定义如下 create table person (person_id char(10),person_name char(20),primary key(person_id) ); create table friend (person_id char(10),friend_id char(10),primary key(person_id, friend_id),foreign key(person_id) references person,foreign key(friend_id) references person,check(person_id friend_id) );   四、三元和n元关系的转化 无论哪种形式的三元关系在转化时都会创建一张关系表包含所有实体的主键。三元关系中“一”端实体的个数决定了函数依赖的数量。因此“一对一对一”关系有三个函数依赖式“一对一对多”关系有两个函数依赖式“一对多对多”关系有一个函数依赖式。“多对多对多”关系的主键为所有外键的联合。 1. “一对一对一”三元关系 “一对一对一”三元关系 以上表示的语义为 1名技术员在1个项目中使用特定的1本记事簿 1本记事簿在1个项目中只属于1名技术员 1名技术员的1本记事簿只用于记录1个项目 注1名技术员仍可以做多个项目对于不同的项目维护不同的记事簿。 转化得到的SQL表定义如下 create table technician (emp_id char(10),primary key(emp_id) ); create table project (project_name char(20),primary key(project_name) ); create table notebook (notebook_no integer,primary key(notebook_no) ); create table uses_notebook (emp_id char(10),project_name char(20),notebook_no integer not null,primary key(emp_id, project_name),foreign key(emp_id) references technicianon delete cascade on update cascade,foreign key(project_name) references projecton delete cascade on update cascade,foreign key(notebook_no) references notebookon delete cascade on update cascade,unique(emp_id, notebook_no),unique(project_name, notebook_no) );   函数依赖 emp_id, project_name - notebook_no emp_id, notebook_no - project_name project_name, notebook_no - emp_id   2. “一对一对多”三元关系 “一对一对多”三元关系 表示的语义为 参与1个项目的1名员工只会在1个地点做该项目 1名员工在1个地点只能做1个项目 1个地点的1个项目可能有多名员工参与 注1名员工可以在不同的地点做不同的项目 转化得到的SQL表定义如下 create table employee (emp_id char(10),emp_name char(20),primary key(emp_id) ); create table project (project_name char(20),primary key(project_name) ); create table location (loc_name char(15),primary key(loc_name) ); create table assigned_to (emp_id char(10),project_name char(20),loc_name char(15) not null,primary key(emp_id, project_name),foreign key(emp_id) references employeeon delete cascade on update cascade,foreign key(project_name) references projecton delete cascade on update cascade,foreign key(loc_name) references locationon delete cascade on update cascade,unique(emp_id, loc_name) );   函数依赖 emp_id, loc_name - project_name emp_id, project_name - loc_name   3. “一对多对多”三元关系 “一对多对多”三元关系 表示的语义为 1个项目中的1名工程师只会有1名经理 1个项目中的1名经理会带领多名工程师做该项目 1名经理和他手下的1名工程师可能参与多个项目 转化得到的SQL表定义如下 create table project (project_name char(20),primary key(project_name) ); create table manager (mgr_id char(10),primary key(mgr_id) ); create table engineer (emp_id char(10),primary key(emp_id) ); create table manages (project_name char(20),mgr_id char(10) not null,emp_id char(10),primary key(project_name, emp_id),foreign key(project_name) references projecton delete cascade on update cascade,foreign key(mgr_id) references manageron delete cascade on update cascade,foreign key(emp_id) references engineeron delete cascade on update cascade );   函数依赖 project_name, emp_id - mgr_id   4. “多对多对多”三元关系 图13 “多对多对多”三元关系 表示的语义为 1名员工在1个项目中可以运用多种技能 1名员工的1项技能可以在多个项目中运用 1个项目中的1项技能可以被参与该项目的多名员工运用 转化得到的SQL表定义如下 create table employee (emp_id char(10),emp_name char(20),primary key(emp_id) ); create table skill (skill_type char(15),primary key(skill_type) ); create table project (project_name char(20),primary key(project_name) ); create table sill_used (emp_id char(10),skill_type char(15),project_name char(20),primary key(emp_id, skill_type, project_name),foreign key(emp_id) references employeeon delete cascade on update cascade,foreign key(skill_type) references skillon delete cascade on update cascade,foreign key(project_name) references projecton delete cascade on update cascade );     五、泛化与聚合 泛化抽象结构中的超类实体和各子类实体分别转化为对应的SQL表。超类实体转化得到的表包含超类实体的键和所有公共属性。子类实体转化得到的表包含超类实体的键和子类实体特有的属性。 要保证泛化层次中数据的完整性就必须保证某些操作在超类表和子类表的之间的同步。若超类表的主键需做更新则子类表中对应记录的外键必须一起更新。若需删除超类表中的记录子类表中对应记录也需一起删除。我们可以在定义子类表时加入外键级联约束。这一规则对于覆盖与非覆盖的子类泛化都适用。 14. 泛化层次关系 图14  泛化层次关系 图14表示的语义为 个人可能是一名员工或是一位顾客或同时是员工与顾客或两者都不是 转化得到的SQL表定义如下 create table individual (indiv_id char(10),indiv_name char(20),indiv_addr char(20),primary key(indiv_id) ); create table employee (emp_id char(10),job_title char(15),primary key(emp_id),foreign key(emp_id) references individualon delete cascade on update cascade ); create table customer (cust_no char(10),cust_credit char(12),primary key(cust_no),foreign key(cust_no) references individualon delete cascade on update cascade );   有些数据库开发者还会在超类表中增加一个鉴别属性。鉴别属性对于每一种子类有不同的值表示从哪一个子类中能获得进一步的信息。 聚合抽象的转化方式也是为超类实体和每一个子类实体生成SQL表但聚合中的超类与子类没有公共属性和完整性约束。聚合的主要功能是提供一种抽象来辅助视图集成的过程。       六、总结 基本转化步骤 以下总结了从ER图到SQL表的基本转化步骤 1. 把每一个实体转化为一张表其中包含键和非键属性。 2. 把每一个“多对多”二元或二元回归关系转化为一张表其中包含实体的键和关系的属性。 3. 把三元及更高元n元关系转化为一张表。 让我们一一对这三个步骤进行讨论。   实体转化 若两个实体之间是“一对多”关系把“一”端实体的主键加入到“多”端实体表中作为外键。若两实体间是“一对一”关系把某个“一”端实体的主键放入另一实体表中作为外键加入外键的实体理论上可以任选但一般会遵循如下原则按照实体间最为自然的父子关系把父实体的键放入子实体中另一种策略是基于效率把外键加入到具有较少行的表中。 把泛化层次中的每一个实体转化为一张表。每张表都会包含超类实体的键。事实上子类实体的主键同时也是外键。超类表中还包含所有相关实体的公共非键属性其他表包含每一子类实体特有的非键属性。 转化得到的SQL表可能会包含not null, unique, foreign key等约束。每一张表必须有一个主键primary key主键隐含着not null和unique约束。   “多对多”二元关系转化 每一个“多对多”二元关系能转化为一张表包含两个实体的键和关系的属性。 这一转化得到的SQL表可能包含not null约束。在这里没有使用unique约束的原因是关系表的主键是由各实体的外键复合组成的unique约束已隐含。   三元关系转化 每一个三元或n元关系转化为一张表包含相关实体的n个主键以及该关系的属性。 这一转化得到的表必须包含not null约束。关系表的主键由各实体的外键复合组成。n元关系表具有n个外键。除主键约束外其他候选键(candidate key)也应加上unique约束。   ER-to-SQL转化步骤示例 把数据库设计Step by Step (7)——概念数据建模中最后得到的公司人事和项目数据库的全局ER图图9转化为SQL表。 1. 直接由实体生成的SQL表有 Division          Department          Employee          Manager          Secretary          Engineer        Technician     Skill                          Project                Location           Prof_assoc       Desktop Workstation 2. 由“多对多”二元关系及“多对多”二元回归关系生成的SQL表有 belongs_to 3. 由三元关系生成的SQL表有 skill_used     assigned_to   总结与回顾 1. 通过一些简单的规则就能把ER模型中的实体、属性和关系转化为SQL表。 2. 实体在转化为表的过程中其中的属性一一被映射为表的属性。 3. “一对一”或“一对多”关系中的“子”端实体转化成的SQL表必须包含另一端实体的主键作为外键。 4. “多对多”关系转化为一张表包含相关实体的主键复合组成其自身的主键。同时这些键在SQL中定义为外键分别指向各自的实体。 5. 三元或n元关系被转化为一张表包含相关实体的主键。这些键在SQL中定义为外键。这些键中的子集定义为主键其基于该关系的函数依赖。 6. 泛化层次的转化规则要求子类实体从超类实体继承主键。 7. ER图中的可选约束在转化为SQL时表现为关系的某一端实体允许为null。在ER图中没有明确标识可选约束时创建表时默认not null约束。         参考资料 数据库设计Step by Step (9)——ER-to-SQL转化  转载于:https://www.cnblogs.com/arxive/p/9669214.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

策划方案免费网站南京广告公司排名

在Java中,Async注解通常与Spring框架一起使用以实现异步方法调用。然而,CompletableFuture.runAsync()是Java标准库中的方法,并不受Async注解的影响。 Async注解只能被Spring容器识别和处理,因此只能在由Spring管理的组件&#x…

织梦做网站简单吗企业策划书3000字

1.概述 封装(Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据,必须通过严格的接口控制…

网站做加qq群链接地址wordpress删除评论框

基于被囊群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于被囊群算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于被囊群优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&#x…

青岛网站建设eoe网上商城推广方法

应用变现平台是帮助开发者优化广告策略并最终获得更多收入的综合途径。在广告变现过程中,接入单一的广告联盟,变现效率不高,并且开发者需要花费许多精力进行筛选和管理,难免会应接不暇,而聚合广告平台的出现则一定程度…

黑龙江门户网站建设注册公司的流程图

2024年智慧城市与信息系统国际学术会议 (ICSCIS 2024) 2024 International Conference on Smart City and Information System 随着互联网技术的发展,城市化进程的深入,智慧城市的研究与发展越来越普遍,运用物联网、云计算、大数据等先进信…

中职省级示范校建设网站百度快速收录seo工具软件

文章目录 1. 认识线程死锁2. 如何避免线程死锁? 1. 认识线程死锁 线程死锁描述的是这样一种情况:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 如下图所示&#xff…

2025.9.23

今天早八去科技楼上工程实训课,主要是电工技能,比如学习万用表测电笔的使用以及体验安全电流穿过人体的感觉。然后写实验报告记录过程和感想。下课后去勒泰中心5楼吃了自助烤肉两个小时,还是烤肉,火鸡面,薯条,桂…

软件工程学习日志2025.9.23

我的 HBase 故障排查日记:从绝望到成功的一天 今天是我与 HBase 斗争的一天,也是一次从挫折到突破的技术之旅。早上当我尝试启动 HBase 时,遭遇了一系列令人困惑的问题,最终通过系统性的排查找到了解决方案。 问题…

长春免费网站制作百度网盘app下载安装电脑版

写在开头FreeSql 是 .NET 开源生态下的 ORM 轮子,转眼快两年了,说真的开源不容易(只有经历过才明白)。今天带点干货和湿货给大家,先说下湿货。认识我的人,知道 CSRedisCore 是我写的另外一个开源组件&#…

dede网站文章同步网站开发和网络工程师

会员经济俨然成为消费领域的“香饽饽”。 听歌、看视频、购物甚至出行,三百六十行,行行有会员。 本质上,“会员”是商家与消费者之间的“信任关系”,消费者愿意相信商家会让渡更多实惠与便利;商家则希望通过让利换取…

电信网站备案流程图wordpress 来必力

1 迭代Iteration 迭代Iteration:所谓迭代就是重复运行一段代码语句块的能力,就好比在一个容器中进行一层一层遍历数据,在应用过程中for循环最为突出。迭代就是从某个容器对象中逐个地读取元素,直到容器中没有元素为止。迭代迭代&…

做网站要学会什么软件微信头像定制软件

Static修饰成员变量 Static是什么 叫静态,可以修饰成员变量,成员方法 成员变量按有无static修饰分俩种: 类变量:有static修饰,属于类,在计算机里只有一份,会被类的全部对…

网站建设家乡网页设计模板零元创业加盟网

作者:CSDN @ _养乐多_ 本博客将向您介绍如何使用Google Earth Engine(GEE)平台来处理Landsat 5、7和8的卫星图像数据,计算NDVI的斜率和截距,以及如何导出这些结果供进一步分析使用。 文章目录 一、代码详解1.1 核心代码详解1.2 核心代码详解1.3 代码框架介绍二、完整代码…

江门搜狗网站推广优化html5 图片网站

2019独角兽企业重金招聘Python工程师标准>>> Spring Boot对于如何使用Spring构建应用程序有一个看法:例如它具有常规配置文件的常规位置,以及用于常见管理和监视任务的端点。Spring Cloud建立在此之上,并添加了一些可能系统中所有…

已收录的网站不好优化白云区江夏附近做网站

前言 项目进行到新的一个迭代了,赶了1周需求,接口终于处理完了。分享记录下迭代中处理导入、导出、下载模版功能的细节吧。 一、场景 EasyExcel(阿里)实现Excel数据处理三层表头,第二、三层表头动态数据根据第二、三层…

辽阳网站建设辽阳登录建设部网站

注:本博文代码基于ZRender 3.4.3版本开发,对应版本库地址:ZRender 库。 效果 实现分析 通过上面显示的效果图,可以看出,这种效果就是在Canvas中生成多个可移动的点,然后根据点之间的距离来确定是否连线&am…

平面设计网站有哪些比较好的中山外发加工网

需要用上插件:axupimgs插件作者:莫若卿支持版本:5.0.4支持语言:仅中文插件版本:1.6一、axupimgs 插件作用:这是一个tinymce多图片批量上传插件,支持拖拽文件添加,拖拽支持白名单&…

免费站推广网站2022php做门户网站

目录 1. 前言 2. 实验分析 2.1 导入包 2.2 决策树模型构建及树模型的可视化展示 2.3 概率估计 2.4 绘制决策边界 2.5 决策树的正则化(剪枝) 2.6 对数据敏感 2.7 回归任务 2.8 对比树的深度对结果的影响 2.9 剪枝 1. 前言 本文主要分析了决策树的分类和回…

markdown 使用指南

数学公式 分数 \frac{x+y}{2} 效果:\(\frac{x+y}{2}\) 求和 \sum_{x}^{n} \(\sum_{x}^{n}\) 积分 \int \(\int\)

第6.2节 Android Agent制作<三>

第6.2节 Android Agent制作<三>pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…