当前位置: 首页 > news >正文

如何最便宜建设一个网站新品牌推广方案

如何最便宜建设一个网站,新品牌推广方案,江西南昌最新疫情,仿站在线实验目的 理解数据库模型的层次结构:强调理解外模式、模式、内模式之间的关系,以及它们在数据库系统中的作用和相互映射的过程。探究数据库设计与实现:通过识别业务场景中的数据模式,建立相应的实体表,验证设计模型的…

实验目的

  • 理解数据库模型的层次结构:强调理解外模式、模式、内模式之间的关系,以及它们在数据库系统中的作用和相互映射的过程。
  • 探究数据库设计与实现:通过识别业务场景中的数据模式,建立相应的实体表,验证设计模型的合理性,并思考其在数据库系统中的应用和实现方式。
  • 学习用户界面设计与数据库对接:利用快速原型设计工具设计用户界面,并分析界面子集与模式之间的映射关系,从而更好地理解外模式的概念及其与数据库系统的关系。
  • 探索数据规模估算方法:学习和掌握数据库系统数据规模估算方法,估计业务场景的数据规模,并讨论数据规模对内模式实现的可能影响。
  • 思考数据加工和处理过程:分析数据库系统从内模式到用户界面的映射过程中可能涉及的数据加工环节,以及由程序员和数据库管理系统实现的不同环节。

实验要求

  1. 外模式、模式、内模式与两级mapping理解、设计与思考题。

        请针对如下业务场景

        1)    12306网站余票查询业务模型

        2)    航空公司航班查询业务模型

        3)    支付宝或微信支付业务模型

        4)    银行账户与转账业务模型

        5)    微信朋友圈业务模型

        6)    微信用户及聊天群聊天业务模型

        7)    短视频平台业务模型

        8)    知乎等论坛业务模型

        9)    互联网点餐业务模型

        10)  快餐店点餐业务模型(门店或网络点餐)

        选择任一实际应用场景,完成以下任务:

2. 尝试标识该业务场景中的数据模式,即列出该业务涉及到的所有实体型(包括实体名及属性(可以适当简化)。可以采用如下形式列出:

实体型名1(属性1,…,属性n)

尝试在你选定的数据库平台中建立实体型所对应的几个表,并想办法往其中插入数据,验证你所设计的模型的合理性。

3. 请自学了解Axure RP等快速原型设计工具的概念及功能,并尝试下载一个试用版。请你充当产品经理和产品界面模型设计工程师,模仿或创新设计两个用户界面(UI、用户视图或外模式的子模式)。请提交原始设计文档以证明你做了此项工作。

4. 请分析你所设计的用户界面所对应的外模式子集,以及该子集与前面的模式间的映射关系,思考并叙述数据库系统从内模式、模式、外模式并最终到用户界面的双向映射(mapping)过程,分析过程中可能会涉及到的数据加工环节。分别指出一般需要由程序员写程序实现的环节和由数据库管理系统实现的环节。

5. 请尝试学习掌握数据库系统数据规模(条或记录数)估算方法,估计所选业务场景的数据规模,针对这种规模,请说明这种规模的数据可能对内模式的实现或表示存在什么要求。


 ER图向关系模型的转换

首先,明确E-R图向关系模型的转换的目的:将实体、实体的属性和实体之间的联系转换为关系模式

实验1中所设计概念模型的ER 图如下:

 

    一个实体型转化为一个关系模式

    转换规则如下:

    • 关系的属性:实体的属性
    • 关系的码:实体的码
    • 派生属性可以忽略,因为可以直接计算得到

    转换之后为:

    用户(用户ID,用户名,账号,密码,个人简介,注册时间,头像)

    实体型间的联系

     

    1:n联系

    一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并

    若转换为一个独立的关系模式:

    • 关系的属性:与该联系相连的各实体的码以及联系本身的属性
    • 关系的码:n端实体的码

    若与n端对应的关系模式合并:

    • 合并后关系的属性:在n端关系中加入1端关系的码和联系本身的属性
    • 合并后关系的码:不变
    • 可以减少系统中的关系个数,一般情况下更倾向于采用这种方法

    回复联系与“评论”关系合并,合并结果如下:

    评论(评论ID,评论内容,评论时间,评论者ID,被评论者ID,父评论ID

    内容创作者是用户的子类,故将“内容创作者”关系属性合并到“用户关系”属性,创作者ID即为用户ID,然后将“发布”联系与“文章”关系合并,结果如下:

    用户(用户ID,用户名,账号,密码,个人简介,注册时间,头像,身份证号创作者等级

    文章(文章ID,上传时间,用户ID,文章描述,文章路径,文章封面,发布状态,标题,阅读量)

    m:n联系

    一个m:n联系转换为一个关系模式:

    • 关系的属性:与该联系相连的各实体的码以及联系本身的属性
    • 关系的码:各实体码的组合

            “归属”联系为m:n联系,可以将它转换为:归属(文章ID,分区ID其中文章ID和分区ID为关系的组合码;

            “拥有”联系为m:n联系,可以将它转换为:拥有(文章ID,标签ID其中文章ID和标签ID为关系的组合码。

            内容消费者是用户的子类,故将“内容消费者”关系属性合并到“用户关系”属性,消费者ID即为用户ID,更新“用户“关系模型:

    用户(用户ID,用户名,账号,密码,个人简介,注册时间,头像,身份证号,创作者等级,硬币数

            “收藏”联系为m:n联系,可以将它转换为:收藏(用户ID,文章ID其中用户ID和文章ID为关系的组合码;

            “点赞”联系为m:n联系,可以将它转换为:点赞(用户ID,文章ID其中用户ID和文章ID为关系的组合码;

            “投币”联系为m:n联系,可以将它转换为:投币(用户ID,文章ID,投币数)其中用户ID和文章ID为关系的组合码

            “关注”联系为m:n联系,可以将它转换为:关注(关注ID,关注者ID,被关注者ID)其中关注ID为关系的主码

    多元联系

    三个或三个以上实体间的一个多元联系转换为一个关系模式:

    • 关系的属性:与该多元联系相连的各实体的码以及联系本身的属性
    • 关系的码:各实体码的组合

            “发表”联系是一个三元联系,可以将它转换为如下关系模式, 其中用户ID、文章ID和评论ID为关系的组合码:发表用户ID文章ID评论ID

    知乎关系模型

    按照上述转换原则,知乎系统中的实体和联系转换为下列关系模型:

    1. 实体与联系:
      1. 分区(分区ID,分区描述,分区名称)
      2. 标签(标签ID,标签名称)
      3. 评论(评论ID,评论内容,评论时间,评论者ID,被评论者ID,父评论ID)
      4. 文章文章ID,上传时间,用户ID,文章描述,文章路径,文章封面,发布状态,标题,阅读量)
      5. 归属(文章ID,分区ID
      6. 拥有(文章ID,标签ID
      7. 用户用户ID,用户名,账号,密码,个人简介,注册时间,头像,身份证号,创作者等级,硬币数)
      8. 收藏(用户ID,文章ID
      9. 点赞(用户ID,文章ID
      10. 投币(用户ID,文章ID,投币数)
      11. 关注(关注ID,关注者ID,被关注者ID)
      12. 发表用户ID文章ID评论ID
    2. 该关系模型由12个关系模式组成,其中:
      1. 文章关系模式包含了“发布”联系所对应的关系模式
      2. 评论关系模式包含了“回复”联系所对应的关系模式

    基本表建立

    因此,实体类型有:

    1. 分区(分区ID,分区描述,分区名称)
    2. 标签(标签ID,标签名称)
    3. 评论(评论ID,评论内容,评论时间,评论者ID,被评论者ID,父评论ID)
    4. 文章文章ID,上传时间,用户ID,文章描述,文章路径,文章封面,发布状态,标题,阅读量)
    5. 归属(文章ID,分区ID
    6. 拥有(文章ID,标签ID
    7. 用户用户ID,用户名,账号,密码,个人简介,注册时间,头像,身份证号,创作者等级,硬币数)
    8. 收藏(用户ID,文章ID
    9. 点赞(用户ID,文章ID
    10. 投币(用户ID,文章ID,投币数)
    11. 关注(关注ID,关注者ID,被关注者ID)
    12. 发表用户ID文章ID评论ID

            接下来以用户关系模式(user)、文章关系模式(article)、分区关系模式(Category)为例,在Mysql中建立对应基本表。

    User表创建

    执行以下语句进行数据的插入,其中now()函数用于获取当前时间:

     插入成功,通过插件可以可视化user表:

     

    Category表创建

    执行以下语句进行数据的插入,其中now()函数用于获取当前时间:

    插入成功,通过插件可以可视化category表: 

    Article表

    执行以下语句进行数据的插入,其中now()函数用于获取当前时间:

    插入成功,通过插件可以可视化article表:

     


    Axure RP设计UI界面

    使用Axure RP设计了知乎的两个界面(登陆注册界面和后台管理页面) 

    登陆注册页面

            左侧为知乎封面和logo,右侧为自主设计的登陆和注册表单,具有记住密码和登陆按钮等

    知乎后台管理页面

            页面总体结构为:左边菜单,右边分成三部分(顶部,中间,底部),其中中间内容区域,根据用户选择不同菜单进行切换。

            右边的顶部导航栏左侧为登陆用户昵称,右侧为登陆用户头像。

            左侧菜单包括三个模块

    1. 文章分类:展示整个系统中所有的文章分类(查),以及添加分类、修改分类、删除分类。
    2. 文章管理:具有搜索和分页功能;添加文章(文章标题、文章分类、文章封面、文章内容)、编辑文章、删除文章;点击编辑文章,会弹出一个抽屉,显示文章的详细信息
    3. 个人中心:
      1. 基本资料:可修改用户昵称和用户邮箱,修改昵称同时导航栏展示用户昵称也会修改
      2. 更换头像:选择图片、上传头像后更换头像
      3. 重置密码:原密码+新密码+确认新密码,修改成功后需要重新登陆

     


    外模式子集和映射关系

    外模式子集

    外模式子集代表用户界面上需要显示的数据和交互功能。根据设计的用户界面,可以推导出以下外模式子集:

    登录注册页面(外模式子集)

            用户信息:用户名、密码

    后台管理页面(外模式子集)

            顶部导航栏:用户昵称、用户头像

            左侧菜单:

    1. 文章分类:分类列表、添加分类、修改分类、删除分类
    2. 文章管理:文章列表(带搜索和分页功能)、添加文章(标题、分类、封面、内容)、编辑文章(标题、分类、封面、内容)、删除文章
    3. 个人中心:基本资料(用户昵称、用户邮箱)、更换头像、重置密码(原密码、新密码、确认新密码)

    数据库模式

    User表:

     

    Category表:

    Article表:

     

      外模式与模式间的映射关系

      以下是外模式子集与数据库模式之间的映射关系:

      登录注册页面:

                用户名、密码 ↔ `User` 表中的 `username`, `password`

      后台管理页面:

               顶部导航栏:

                      用户昵称 ↔ `User` 表中的 `nickname`

                      用户头像 ↔ `User` 表中的 `user_pic`

               左侧菜单:

                      文章分类

                              分类列表 ↔ `Category` 表中的 `category_name`

                              添加、修改、删除分类 ↔ 对 `Category` 表进行增删改操作

                      文章管理

                              文章列表 ↔ `Article` 表

                              搜索功能 ↔ 对 `Article` 表中相关字段(如 `title`)进行查询

                              添加、编辑、删除文章 ↔ 对 `Article` 表进行增删改操作

                      个人中心

                              基本资料(用户昵称、用户邮箱)↔ `User` 表中的 `nickname`, `email`

                              更换头像 ↔ `User` 表中的 `user_pic`

                              重置密码 ↔ `User` 表中的 `password`

      双向映射过程分析

              数据库系统从内模式、模式、外模式并最终到用户界面的双向映射过程可以分为以下几个环节:

      1. 内模式到模式的映射

              内模式是物理存储的实现细节,包括数据文件的存储格式和索引的实现等。

              模式是数据库的逻辑结构,包括表的定义、关系和约束等。

              数据库管理系统(DBMS)负责将内模式转换为模式。这主要涉及存储引擎、索引的维护和查询优化等。

      2. 模式到外模式的映射

              外模式是用户视角的数据视图,通常由应用程序生成并展现给用户。外模式基于模式,但只展示用户需要的数据。

              应用程序(例如使用Axure设计的界面)负责将模式转换为外模式。这涉及数据查询、数据过滤和数据格式化等操作。例如:

      1. 查询 `User` 表以获取用户的昵称和头像,展示在导航栏上。
      2. 查询 `Article` 表并进行分页和搜索,展示在文章管理界面上。

      3. 数据加工环节

      数据查询:从数据库中检索数据。例如,通过SQL语句查询用户信息、文章列表和分类列表。

      数据过滤:根据用户输入的搜索条件过滤数据。例如,根据文章标题搜索文章。

      数据格式化:将检索到的数据格式化为适合前端展示的格式。例如,将日期格式化,将文章内容截取等。

      由程序员实现的环节

      用户界面的设计和实现(HTML/CSS/JavaScript)

      数据查询和操作的实现(SQL语句、ORM框架)

      数据的过滤、排序和分页处理

      业务逻辑的实现(例如用户登录验证、密码重置逻辑等)

      由数据库管理系统实现的环节

      内模式到模式的映射(存储引擎、索引、查询优化)

      数据一致性和完整性的维护(事务、约束、触发器等)

      并发控制和数据恢复

              通过上述分析,可以清晰地看到数据库系统从内模式、模式、外模式并最终到用户界面的双向映射过程,以及在每个环节中不同角色的职责分工。这种双向映射确保了数据的一致性和完整性,同时也使得用户能够方便地访问和操作数据。


      内模式要求

      数据规模估算方法

      为了估算所选业务场景的数据规模,需要考虑以下几个方面:

      • 用户数量:估计会有多少用户注册和使用系统。
      • 文章数量:每个用户大约会发布多少文章。
      • 分类数量:系统中会有多少文章分类。
      • 数据增长率:用户和文章数量随时间增长的速度。

      可以进行如下假设和估算:

      1. 用户数量:假设系统在第一年内会有 10,000 个注册用户,每年用户数量会以 20% 的速度增长。
      2. 文章数量:假设每个用户平均会发布 20 篇文章, 第一年的文章总数 = 10,000 用户 * 20 文章/用户 = 200,000 篇文章,假设每年的文章数量也会以 20% 的速度增长。
      3. 分类数量:假设系统初期会有 50 个文章分类,分类数量增长较慢,每年增加 10 个新的分类。

      根据以上假设,估算前三年的数据规模:

      1. 第一年:用户数量:10,000;文章数量:200,000;分类数量:50
      2. 第二年:用户数量:10,000 * 1.2 = 12,000;文章数量:200,000 * 1.2 = 240,000;分类数量:50 + 10 = 60
      3. 第三年:用户数量:12,000 * 1.2 = 14,400;文章数量:240,000 * 1.2 = 288,000;分类数量:60 + 10 = 70

      数据规模对内模式实现或表示的要求

      随着数据规模的增加,数据库的内模式实现需要满足以下几个要求:

      1. 存储管理

              随着数据量的增加,数据库系统需要有效地管理存储空间。这涉及到:

                      存储分配和管理:确保有足够的存储空间来保存不断增长的数据。

                      压缩和归档:对于不常访问的数据,可以考虑进行压缩或归档,以节省存储空间。

      2. 索引管理

              大规模数据需要有效的索引来提高查询性能。这涉及到:

                      索引的创建和维护:创建合适的索引(如 B+ 树、哈希索引等)来加速查询,同时需要定期维护索引以确保其性能。

                      索引选择和优化:根据查询模式优化索引结构,避免过多或不合适的索引导致的性能问题。

      3. 分区和分片

              为了提高数据库的性能和可扩展性,可以将大表分区或分片:

                      水平分区:将表按行分割,存储在不同的物理文件或服务器上。

                      垂直分区:将表按列分割,将相关列存储在一起。

                      数据分片:在分布式数据库中,将数据分片存储在不同的节点上,以便均衡负载和提高查询效率。

      4. 并发控制

              随着用户和数据量的增加,并发访问的需求也会增加:

                      锁机制:采用合适的锁机制(如行级锁、表级锁)来管理并发访问,避免冲突和死锁。

                      多版本并发控制(MVCC):通过维护数据的多个版本,支持并发读写操作,提高系统的并发性能。

      5. 数据一致性和完整性

              确保数据的一致性和完整性是数据库系统的重要要求:

                      事务管理:通过 ACID 特性(原子性、一致性、隔离性、持久性)来管理事务,确保数据一致性。

                      约束和触发器:使用约束(如主键、外键、唯一性约束)和触发器来确保数据的完整性。

      6. 备份和恢复

              大规模数据需要有效的备份和恢复机制:

                      定期备份:定期备份数据,确保在数据丢失或损坏时能够快速恢复。

                      增量备份:对于大规模数据,可以采用增量备份的方式,以减少备份时间和存储空间。

              通过上述分析,可以看出,随着数据规模的增加,数据库系统在内模式实现上需要考虑存储管理、索引优化、分区和分片、并发控制、数据一致性和完整性以及备份和恢复等多个方面的问题。这些要求的满足能够确保数据库系统在处理大规模数据时仍然具有高性能和高可靠性。


      实验感悟

              通过本次实验,我对E-R图向关系模型的转换有了更加深刻的理解。E-R图作为数据库设计的重要工具,通过将实体、属性及其联系抽象化,可以形象地表示出系统的结构和信息流转。然而,E-R图只是设计的起点,最终需要将其转换为关系模型,才能在实际的数据库管理系统(DBMS)中实现。

              在实验1中,我设计了一个关于知乎系统的E-R图,并详细讨论了其向关系模型转换的具体规则。首先,每个实体型转换为一个独立的关系模式,其中实体的属性成为关系的属性,实体的码成为关系的主码。比如,用户实体转化后形成了用户关系模式,包括用户ID、用户名、账号等属性。

              接下来,处理实体间的联系。1:n联系可以选择转换为独立的关系模式或与n端实体合并,这取决于具体需求和优化考虑。实验中,我将“回复”联系与“评论”关系合并,从而减少了系统中的关系个数,简化了数据管理。

              对于m:n联系,则需要单独转换为一个关系模式,其属性包括相关实体的码及联系本身的属性。例如,“归属”联系转换后形成了归属关系模式,其属性包括文章ID和分区ID。

              在处理子类关系时,我将子类的属性合并到父类的关系中,这样可以更好地体现继承关系。例如,将“内容创作者”和“内容消费者”的属性合并到用户关系中,更新后的用户关系模式不仅包含基本用户信息,还包括创作者等级和硬币数等。

              最后,通过在MySQL中建立基本表,我将理论转换为实践,创建了用户、文章和分区等表,并插入数据进行可视化展示。这一步骤巩固了我对关系模型的理解,并使我能够观察到实际数据库操作中的细节和问题。

              此外,利用Axure RP设计了知乎的登陆注册界面和后台管理页面,通过前端设计与后端数据库的结合,更直观地理解了外模式子集与数据库模式间的映射关系。比如,用户界面上的数据展示与后台数据库的对应关系清晰地展示了数据从存储到显示的过程。

              综上所述,这次实验不仅让我掌握了E-R图到关系模型转换的具体方法,更加深了我对数据库设计与实现的整体理解。通过理论与实践相结合,我更全面地理解了数据库设计的各个环节及其相互关系,从而为以后的数据库开发工作奠定了坚实的基础。

      http://www.cadmedia.cn/news/2028.html

      相关文章:

    1. 遵义高端网站建设广州头条今日头条新闻
    2. 南通网站建设案例百度怎样免费发布信息
    3. 网站底部备案代码百度提交
    4. 服务器托管公司seo外链发布平台有哪些
    5. 深圳住建官网杭州seo服务公司
    6. 安徽外经建设集团网站sem
    7. 北京市朝阳区住房建设网站产品软文范例软文
    8. 预付做网站定金如何东莞做网站推广公司
    9. 盾思途旅游网站建设全球网站排名
    10. 企业手机网站建设流程图怎样建立个人网站
    11. 单向链接对网站排名影响苏州seo关键词优化排名
    12. 石家庄疫情是真是假网站优化排名
    13. 网站建设综合推荐链接点击量软件
    14. 郑州人流医院排名岳阳seo
    15. 河北建设银行官网招聘网站网店营销策略有哪些
    16. 天堂 在线地址8深圳百度seo公司
    17. 属于教育主管部门建设的专题资源网站是拼多多关键词优化是怎么弄的
    18. 医院网站建设具体内容百度快速排名优化工具
    19. 建网站-湛江市优化推广公司哪家好
    20. 深圳网站建设外贸公司google官网入口手机版
    21. 网站建设分金手指排名二六seo查询网站是什么
    22. 动态网站设计与实现托管竞价账户哪家好
    23. 网站开发美学 2.0免费发seo外链平台
    24. 湖南智能网站建设多少钱网站建设公司简介
    25. 中国建设银行信用卡官网站域名停靠
    26. 柳编网站建设意义百度热榜
    27. 济南香港国际网站建设百度提交收录入口
    28. 哈尔滨房地产网站建设入门seo技术教程
    29. 粘合剂东莞网站建设重庆百度推广开户
    30. 企业网站推广服务协议百度点击工具