Skip to content

Commit

Permalink
[1주차/앨빈] 워크북 제출합니다.
Browse files Browse the repository at this point in the history
[1주차/앨빈] 워크북 제출합니다.
  • Loading branch information
kseokc authored Sep 25, 2024
2 parents 692b802 + c2126a9 commit 717b4ee
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 0 deletions.
53 changes: 53 additions & 0 deletions keyword/chapter01/keyword.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
- 외래키
- 한 테이블의 필드중 다른 테이블의 행을 식별할 수 있는 키
- 외래키가 포함된 테이블을 자식 테이블이라고 하고, 외래키 값을 제공하는 테이블을 부모 테이블이라 한다.
- 외래키 값은 Null 이거나 참조한 테이블의 기본키값을 가져야 한다.
- 기본키
- primary key : 테이블의 각행을 식별할수있게 해주는 필드 또는 필드의 조합으로 이루어진 키
- 유일성과 최소성을 가지며(후보키), 해당 레코드를 식별할때 기준이 되는 반드시 필요한 키이다.
- Null을 가질수 있는 후보키는 부적절하다
- 하나의 테이블에 반드시 하나의 기본키만 존재해야한다.
- ER 다이어그램
- Entity-Relationship Diagram : 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 표현하기 위해 사용되는 모델
→ 개체와 속성, 관계성을 표현
- 개체(entity) : 표현할 정보를 가지고 있는 독립적인 객체
- 속성(attribute) : 개체가 가지고 있는 속성을 의미한다.
- 관계성(relationship) : 개체 간의 관계를 의미한다.
- 복합 키
- 두개 이상의 필드를 묶어 하나의 기본키로 지정하는것.
- 기본키가 만약 복합키라면, 복합키 또한 당연히 유일성과 최소성을 만족해야한다.
- 연관관계
- One-to-one relationship :한 테이블의 레코드는 다른 테이블의 레코드 하나에만 대응 (레코드가 하나도 대응하지 않을수 있음)
→ 일대일 관계는 보안 목적으로도 유용할 수 있다. ex) 중요한 고객 정보를 별도의 테이블에 저장하고 외래 키를 사용하여 해당 테이블을 기본 테이블에 연결하려는 경우입니다.
- One-to-many relationship : 한 테이블의 레코드는 다른 테이블의 0개, 1개 또는 여러 개의 레코드에 대응
- Many-to-many relationship : 한 테이블의 여러 레코드가 다른 테이블의 여러 레코드에 대응
→ rdbms에서 many-to many 생성을 해주지않기 때문에 중간 테이블을 두고 두개의 테이블과 one-to many 관계를 생성하여 해결한다.
- 정규화

정규화는 데이터베이스의 구조를 최적화하여 중복을 최소화, 데이터 무결성을 높이는 과정입니다.

- 제1정규형 (1NF): 모든 속성이 원자값(Atomic Value)을 가져야 하며, 중복된 그룹이 없어야 함.
- 제3정규형 (3NF): a → b in F+ (F+ : functional closure)

다음중 하나를 만족해야 한다.

- a → b 는 당연해야 한다. (ex.(a→b)&(b→c)→(a→c))
- a는 super key이어야한다.
- b-a의 값들은 R의 후보 키 어야한다
- BCNF (Boyce-Codd Normal Form): a → b 일때, R을 다음으로 분해 할 수 있어야 한다.
- a + b
- (R - (b - a))

[정보처리 실기_데이터베이스06강_정규화](https://youtu.be/RXQ1kZ_JHqg?si=f0OPsoOWnJXSbqca)

- 반 정규화

정규화된 데이터베이스 구조를 의도적으로 비정규화하여 성능을 개선하는 과정
장점

1. 복잡한 조인 없이 간단한 쿼리로 데이터를 조회
2. 데이터 조회 속도를 높일 수 있음

단점

1. 데이터 업데이트 시 더 많은 작업이 필요할 수 있음
25 changes: 25 additions & 0 deletions mission/chapter01/java_mission.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
- 자바의 접근제어자 4가지
1. **public**: 어디서든 접근 가능한 접근 제어자. 클래스, 필드, 메소드 등에 선언되면 다른 패키지에서도 자유롭게 사용 가능.
2. **protected**: 같은 패키지 내에서는 자유롭게 접근 가능하며, 다른 패키지에서는 상속받은 하위 클래스에서만 접근 가능.
3. **default** (아무 접근 제어자도 없는 경우): 같은 패키지 내에서만 접근 가능. 다른 패키지에서는 접근 불가.
4. **private**: 해당 클래스 내에서만 접근 가능. 다른 클래스에서는 접근 불가.

→protected와 default 접근 제어자의 차이는 무엇인가요?

- 클래스와 인터페이스
- **클래스**:
- 객체를 생성하기 위한 설계도 역할
- 필드(속성)와 메소드(기능)를 가짐.
- 클래스를 사용해 인스턴스를 생성하고 상태와 동작을 정의한다.
- **인터페이스**:
- 클래스가 구현해야 하는 추상 메소드의 집합.
- 다중 상속을 제공하며, 메소드의 기본 구조만 정의하고 실제 구현은 클래스에서 해야 한다.

→클래스가 인터페이스를 구현하는 목적은 무엇인가요?

- 상속
- 부모 클래스의 필드와 메소드를 자식 클래스가 물려받아 사용.
- 자식 클래스는 부모 클래스의 기능을 확장하거나 변경할 수 있다.
- 코드의 재사용성을 높일수있다.

→자바에서 다중 상속이 지원되지 않는 이유는 무엇인가요?
5 changes: 5 additions & 0 deletions mission/chapter01/mission.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- 1주차 미션 링크입니다.
-
![2021_04_user_count](./mission.png)


Binary file added mission/chapter01/mission.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 717b4ee

Please sign in to comment.