본문 바로가기

컴퓨터공부/정보처리기사

[정보처리기사] 데이터베이스의 개념, ER 다이어그램, 1:1 , N :1 , N:M의 관계에 대한 분석, ERD 표기법

by Life & study 2023. 12. 22.
반응형

[정보처리기사]  데이터베이스의 개념, ER 다이어그램, 1:1 , N :1 , N:M의 관계에 대한 분석,  ERD 표기법 

[정보처리기사] 데이터베이스의 개념

 

[정보처리기사] 데이터베이스의 개념


다수의 인원, 시스템 또는 프로그램이
사용할 목적으로 통합하여 관리하는 데이터의 집합

데이터베이스 종류
계층형 데이터베이스
망형 데이터베이스
관계형 데이터베이스

데이터베이스 관리시스템 특징

무결성
일관성
회복성
보안성
효율성

 

 

[정보처리기사] ER 다이어그램

 

[정보처리기사] ER 다이어그램

 

 

 

 

[정보처리기사]  1:1 , N :1 , N:M 의 관계에 대한 분석

 

 

[정보처리기사] 1:1 , N :1 , N:M 의 관계에 대한 분석

 


1:1 (One-to-One)
이 관계는 한 개체가 다른 한 개체와만 관련이 있을 때 발생합니다. 예를 들어, 사람과 주민등록번호의 관계는 1:1입니다. 각 사람은 고유한 주민등록번호를 가지며,
 각 주민등록번호도 하나의 사람에게만 속합니다.

Person <----> NationalID



Java Entity:

@Entity
public class Person {
    @Id
    private Long id;
    private String name;

    @OneToOne(mappedBy = "person")
    private NationalID nationalID;
}

@Entity
public class NationalID {
    @Id
    private Long id;
    private String number;

    @OneToOne
    @JoinColumn(name = "person_id")
    private Person person;
}


SQL:

CREATE TABLE Person (
   ID INT PRIMARY KEY,
   NAME VARCHAR(20)
);

CREATE TABLE NationalID (
   ID INT PRIMARY KEY,
   NUMBER VARCHAR(20),
   PERSON_ID INT,
   FOREIGN KEY (PERSON_ID) REFERENCES Person(ID)
);

 


 


1:N 

1:N (One-to-Many)

이 관계는 한 개체가 여러 개체와 연결될 수 있을 때 
발생합니다. 예를 들어, 부모와 자식의 관계는 일반적으로 1:N입니다. 하나의 부모(개체)가 여러 자식(개체)을 가질 수 있습니다.

Parent <----> Childs[Child_0, Child_1,...]

 

하나의 출판사와 여러 권의 책 사이의 관계를 생각해 볼 수 있습니다. 하나의 출판사는 여러 권의 책을 출판할 수 있지만, 각각의 책은 특정 시점에서 하나의 출판사에 의해서만 출판됩니다. 따라서 이는 1:N 관계입니다.

출판사A
    └─ 책1
    └─ 책2
    └─ 책3

출판사B
    └─ 책4
    └─ 책5

 

 


Java Entity:

@Entity
public class Parent {
    
@Id 
private Long id; 
private String name; 

@OneToMany(mappedBy = "parent") 
private List<Child> childs; 
} 

@Entity 
public class Child { 

@Id 
private Long id; 
private String name;

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name="PARENT_ID") 
private Parent parent;  
}



SQL:

CREATE TABLE Parent (
ID INT PRIMARY KEY,
NAME VARCHAR(20)
);

CREATE TABLE Child (
ID INT PRIMARY KEY,
NAME VARCHAR(20),
PARENT_ID INT,
FOREIGN KEY (PARENT_ID) REFERENCES Parent(ID)
);

 


 

N:M (Many-to-Many)

이 관계는 여러 개체가 다른 여러 개체와 연결될 수 있을 때 발생합니다. 예를 들어 학생과 과목 간의 관계는 N:M입니다. 하나의 학생은 여러 과목을 수강할 수 있고, 하나의 과목도 여러 학생들에게 가르쳐질 수 있습니다.

 

학생과 과목 사이의 관계를 생각해볼 수 있습니다. 한 학생은 여러 과목을 수강할 수 있고, 한 과목도 여러 학생에게 가르쳐질 수 있습니다. 이 경우 양쪽 모두가 '다수'와 연결될 가능성이 있으므로, 이는 N:M 관계입니다.

 

학생A 
   ├─ 과목1 
   ├─ 과목2 

학생B 
   ├─ 과목2 
   ├─ 과목3 

과목2 
   ├─ 학생A 
   ├─ 학생B 

과목3 
   └─ 학생B




Students[Student_0, Student_1,...] <----> Subjects[Subject_0, Subject_1,...]



Java Entity:

@Entity 
public class Student { 

@Id 
private Long id; 
private String name;

@ManyToMany 
@JoinTable(name = "student_subject", joinColumns = @JoinColumn(name = "student_id"), inverseJoinColumns = @JoinColumn(name = "subject_id")) 
private List<Subject> subjects;  
} 

@Entity
public class Subject { 

@Id 
private Long id; 
private String name;

@ManyToMany(mappedBy="subjects")  
private List<Student> students;
}




SQL:

CREATE TABLE Student (
ID INT PRIMARY KEY,
NAME VARCHAR(20)
);

CREATE TABLE Subject (
ID INT PRIMARY KEY,
NAME VARCHAR(20)
);

CREATE TABLE STUDENT_SUBJECT (
STUDENT_ID INT,
SUBJECT_ID INT,
PRIMARY KEY (STUDENT_ID, SUBJECT_ID),
    FOREIGN KEY (STUDENT_ID) REFERENCES Student(ID),
    FOREIGN KEY (SUBJECT_ID) REFERENCES Subject(ID)
);

 

 

[정보처리기사]  ERD 표기법 

 

[정보처리기사] ERD 표기법

정보공학 표기법

 

 

 

 

 

[정보처리기사] ERD 최적화

 

[정보처리기사] ERD 최적화

 

 

 

 

ERD 최적화

 

논리모델은
한글로 표기를 하고,

물리모델은 
영어로 다 표기한다.

 

# 관계형 모델형 테이블 표를 한분에 확인하는 방법

 

 

댓글