성장 기록 블로그🌴

#0906 데이터베이스 1일차 뿌시기 ! (데이터베이스 , 데이터 무결성 , Key , Memory , Null , Table 등 ) 본문

AI & BigData 교육과정/Database 관련

#0906 데이터베이스 1일차 뿌시기 ! (데이터베이스 , 데이터 무결성 , Key , Memory , Null , Table 등 )

wlswls2s 2022. 9. 6. 22:19
728x90

< 데이터베이스 1일차 내용 >

< 데이터베이스 1일차 내용 >
● 인공지능 과정 설명

● 데이터베이스 기본 개념정리
● 데이터베이스의 테이블, 키, 데이터 무결성 기본 용어 정의
● 데이터 처리 과정

 


◆ 인공지능 과정

< 프로그램 과정 >


1. 데이터 수집
2. 데이터 보관(저장) -> 데이터베이스임
3. 데이터 분석 -> 머신러닝 기술 활용
4. 예측 -> 딥러닝 기술로 예측
5. 서비스 -> 인터페이스(웹,앱)


텍스트 데이터 – 문자, 숫자
멀티미디어 데이터 – 사진 , 영상 , 음성 등
< 라면 끓이기로 비교>

라면을 가져오기
라면을 보관해놔야함
(먹고싶을 때 가져올 수 있게)
3. 종류 별 라면 끓이는 방법, 조리레시피 등등
4. 이정도면 다 끓였구나 예측
5. 맛있게 먹기

 

◆ 데이터베이스 기본 개념정리

  #  데이터 베이스  

  • 필요할 때 언제든 활용가능하도록 데이터를 저장하는 공간
  • 무결성이 보장된 데이터를 모아놓은 집합(저장소)
  • 데이터 정보는 그대로 사용하는 것이 아니라 가공을 해야함
  • 데이터를 가공할 시에는 데이터의 정확성이 매우 중요함 => 떨어진 정확성 - 잘못된 정보로 이어질 확률 Up!
ex) 1+1 = 2 
▶ 여기서 1은 데이터이며, '+'라는 연산자로 가공하여 2라는 데이터를 추출

ex) 1+1 = 3
▶ 여기서 1은 데이터이며, '+'라는 연산자로 가공하여 3이라는 데이터를 추출
▶ 하지만, 우리는 이 수식이 잘못되었다는 것을 알고있음 => 이처럼 알고있는 사실을  '정보' 라고 함
▶ 우리는 이 수식이 '잘못된 정보'라는 사실을 가지고 있음
▶ 따라서, 데이터의 정확성이 굉장히 중요함

 

  # 데이터 무결성  

- 개념 -

  • 데이터의 정확성이라는 의미
  • 아무리 데이터가 좋더라도 정확성이 떨어지면 그 데이터는 '정보의 쓰레기'가 됨
  • 정보는 데이터의 정확성을 가진 데이터들만 모아서 이루어져야함

 

 < 데이터베이스가 무결성이 보장된 데이터를 보관하는 방법  >

(1) 테이블 형태로 저장

  • 데이터의 무결성을 보장하기위해서 표의 형태로 데이터를 저장함   => 테이블 형태
  • 테이블(표) -> 데이터를 저장하는 단위
  • 테이블은 여러개의 열들(분류)를 가지고 데이터를 저장하는 구조 (행과 열로, 2차원적 구조)
  • 컬럼(열이름) -> 테이블을 구성하는 분류체계, 하나의 테이블은 여러개의 컬럼들로 구성

(2) 컬럼에 조건을 주어 무결성을 보장 (Primary Key)

  • 데이터베이스는 컬럼에 조건을 더하여 무결성을 보장함
  • 조건에 맞는 데이터들만 저장하도록 함
  • 컬럼 별로 조건을 줘서 무결성을 보장함 => primary key(기본키) 
ex) 성별 컬럼 -  남자와 여자라는 조건 지정.
      학번 컬럼 -  양식을 입학년도+학과번호로 설정 , 중복X , 숫자로만 구성됨 등등

 

  # 컴퓨터 작업공간 (Memory) 

- 개념 -

예시:)
                                                                                    < 나무 의자 만들기 >
                                                                                          재료 : 나무
                                                                                       작업도구 : 못 , 톱  , 양치
                                                                               
                                                                        여기에 이를 가공할 작업 공간이 필요함
                                                             =>   그 작업공간을 컴퓨터에서는 메모리 라고 부름
  •  Memory  : 컴퓨터의 작업 공간 -> RAM으로 활동
  • 디스크 -> 메모리 (OUTPUT) : 디스크에서 메모리로 내보내는 것을 OUTPUT(출력)이라고 함
  • 메모리 -> 디스크 (INPUT) : 메모리에서 디스크로 저장하는 것을 INPUT(입력)이라고 함
  • => 디스크는 I/O(Input/Output) 형태가 다라고 생각하면됨 
  •  block  : 디스크를 저장하는 최소 단위: 
  • block 예시) 아파트 => 동으로 구성, block은 101동 , 102동 등 , 각 동을 의미
  • null은 block이 할당되어있지만 실제 데이터가 저장되는 공간에 비어있는 것을 의미
  • 디스크 =>  header라는 부분에 저장

 

 # Null  

- 개념 -

● NULL은 없다라는 개념보다는 비어있다라는 개념이 정확함
Why? - Null은 디스크 안의 block이라는 공간이 할당이 되어있지만 , 실제 데이터는 비어져있음
● 실제 Null - 공간은 있지만 데이터는 비어 있는 것

 

 # 0 &  공백(Spacebar) & Null 비교

0 공백(Spacebar) Null
- 숫자 데이터
- 개수가 0인 것을 의미
- 실제로 1바이트가 할당이 됨
- 문자 데이터
- 실제로 1바이트가 할당이 됨

=> 따라서, 스페이스를 많이 치는 것은 안 좋은 습관임 ,
스페이스바를 칠 때마다 바이트가 할당되어 파일의 크기가 커지는 것
(난 아주 안좋은 습관을 가지고 있군...)

- 공간이 비어있는 것
- 정의되지 않은 값 / 미확인 값

예시) 학생 테이블에서

학생의 몸무게가 NULL인 경우

=> 학생의 몸무게가 0인 것이 아닌 
아직 학생의 몸무게를
알지못한다는 의미

 

 # 가장 이상적인 테이블 만드는 법

  • 한 개의 컬럼에 한 개의 PK(Primary Key) 설치 => 무결성을 보장해주며, 검색 속도를 향샹시켜줌
  • 후보키 생성 => 유일성과 최소성을 만족함 => Not Null + Unique Key(유일 키)
                                                                     S대학 학생 - 주민 , 학번 , 이름
후보 키 (Candidate Key)  - 주민등록번호 , 학번 = Not Null + UK(유일키)
기본 키 (Primary Key) - 학번
( why? 주민이랑 이름은 다른 곳에서도 사용되지만, 학번은 대학 내에서 유일한 대표키)

# 무결성이 깨지는 경우 - Foreign Key ( 참조 키 , 외부 키 )

                                                부서 관련 정보가 담긴 엑셀 파일 , 사원 관련 정보가 담긴 엑셀 파일

Q. 부서 테이블과 사원 테이블이 존재할 때, 내가 사원에 사번 , 이름 , 부서번호에 40이라는 번호를 추가할 경우 추가가 되나요? (두 테이블은 서로 다른 엑셀파일에 저장됨)

<부서 테이블>
부서 번호 부서 이름
10 총무팀
20 기획팀
30 서비스팀

< 사원 테이블 >
사원 번호 사원 이름 부서 번호
1 우영우 10
2 이준호 20
3 최수연 30
( + 추가 할 사원 ) 4 권민우 40
=> 부서 테이블에 존재하지않는 부서번호인 40을 사원 테이블에 추가했을 때 추가가 될까?

< 답 >

더보기

=> 결론: 될 수도 있고 안될 수도 있다 -> 결론적으로 추가는 됨. 

           둘의 파일이 독립되어 있어 사용이 됨.

          그래서 될 수도있고 안될 수도 있음.

=> 하지만 이는 무결성이 깨지는 것으로 쓰레기 데이터가 됨.

위 같은 경우에서 foreign key(참조키, 외부키)의 등장 -> 다른 테이블의 컬럼을 참조

=> 테이블과 테이블의 관계를 설정, 종속적인 삭제 방지

 

 # Key 정리 

- 키 정리 -

Primary Key (기본 키)

Primary key(기본키) - Not Null + Unique

||


후보키 중에 기본적으로 사용하기 위해 선택한 키

기본 키는 중복이 되면 안되며 null값을 가지면 안됨 
기본 키로 정의된 속성에는 동일한 값이 중복되어 저장할 수 없음

● Null은 값이 비어있다라는 의미 (없다보단 비어있다)

ex) 고객 릴레이션 기본 키: 고객아이디

 

 

Candidate  Key (후보 키)

Candidate Key (후보키) - Not Null + UK(unique key)
 


||


유일성과 최소성을 만족시켜야하는 키
● 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재해야 함

ex) 고객 릴레이션 후보키: 고객 번호 , 주민번호 등 (유일함) , 이름같은 건 동명이인이라 X
 

alternate Key (대체 키)


● 기본 키로 선택되지 못한 후보 키


ex) 고객 릴레이션 대체 키: 고객 번호(기본 키) => 고객 주민번호(대체 키) 등
 

foreign Key (외래 키)


● 다른 릴레이션의 기본 키를 참조하는 키 
=> 테이블과 테이블의 관계를 설정 , 종속적인 삭제를 방지함

● 릴레이션 간의 관계를 표현
- 참조하는 릴레이션 : 외래키를 가진 릴레이션

- 참조되는 릴레이션 : 외래키가 참조하는 기본 키를 가진 릴레이션
 

Super Key (슈퍼 키)

● 유일성을 만족하는 키  , 유일성은 만족하지만 최소성은 만족하지 못하는 키

ex) 고객 릴레이션 슈퍼키: 고객 아이디, (고객아이디,고객이름), (고객이름,주소) 등

 

 

728x90