数据库の概念模型


如下内容讲的,主要是关系型数据库


1.基本概念

信息世界的一些基本的概念

  • 实体:一个人,一个部门,一个学生,一门课,学生的一次选课。
  • 属性:一个实体可以用若干属性来刻画。例如学生可以用学号、姓名。
  • 实体型:例如:学生(学号,姓名,性别,出生年月,所在院系)
  • 实体集:例如:全体学生就是一个实体集

实体内部的联系,通常指组成实体的各属性之间的联系

实体之间的联系,通常指实体集之间的联系




2.关系型数据库

关系型数据库系统,采用关系模型作为数据的组织方式,就是一张规范的二维表

在这里插入图片描述

相关概念:

  • 关系:通常说就是一张表。
  • 元组:表中的一行,即一个元组。
  • 属性:表中的一列,即一个属性。
  • 码:表中的某个属性组,他可以唯一确定一个元组。
  • 域:域是一组具有相同数据类型的值得集合。属性的取值来自于某个域,例如人的年龄一般是在(1-120)中间。 (笛卡尔积就是域上的一种集合运算。)
  • 分量:元组中的一个属性值。

关系的每一个分量,必须是一个不可分的数据项,也就是说不允许表中还有表

在这里插入图片描述



3.联系

实体之间的联系,有一对一,一对多,多对多等多种类型

  • 如果实体集 A 中的每一个实体,实体集 B 至多有一个实体(也可以没有)与之联系,反之亦然,则实体集 A 与 实体集 B 具有一对一联系
  • 如果实体集 A 中的每一个实体,实体集B中,有 n 个实体(n>=0)与之联系,反之,对于实体集B中的每个实体,实体集A中,至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系
  • 如果实体集 A 中的每一个实体,实体集 B 中有n个实体(n>=0)与之联系,反之,对于实体集 B 中的每个实体,实体集A中也有m个实体(m>=0)与之联系。则称实体集A与实体集B具有多对多的关系



4.多对多的关系

多对多关系也很常见,例如学生与选修课之间的关系,一个学生可以选择多门选修课,而每个选修课又可以被多名学生选择。

数据库中的多对多关联关系一般需采用中间表的方式处理,将多对多转化为两个一对多。




5.结合EF core 理解多对多

1.Model配置

一对多

以city和Province为例,Province有多个city,而一个city只能有一个Province

using System;
using Microsoft.EntityFrameworkCore;
 
namespace ASPNetEFFCore.Models
{
   
    public class MyContext:DbContext
    {
   
        public MyContext(DbContextOptions<MyContext> options):base(options)
        {
   
        }
 
       protected override void OnModelCreating(ModelBuilder modelBuilder){
   
 
            //配置多对多 ,就是两个一对多,可以不写
 
            modelBuilder.Entity<City>().HasOne(city => city.Province).WithMany(x => x.Cities).HasForeignKey(city => .ProviceId
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值