성장 기록 블로그🌴
#0906 데이터베이스 1일차 뿌시기 ! (데이터베이스 , 데이터 무결성 , Key , Memory , Null , Table 등 ) 본문
AI & BigData 교육과정/Database 관련
#0906 데이터베이스 1일차 뿌시기 ! (데이터베이스 , 데이터 무결성 , Key , Memory , Null , Table 등 )
wlswls2s 2022. 9. 6. 22:19728x90
< 데이터베이스 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 서비스팀
< 사원 테이블 >
=> 부서 테이블에 존재하지않는 부서번호인 40을 사원 테이블에 추가했을 때 추가가 될까?
사원 번호 사원 이름 부서 번호 1 우영우 10 2 이준호 20 3 최수연 30 ( + 추가 할 사원 ) 4 권민우 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