기본지식
★ 데이터들의 일관성을 유지하는게 중요, 중복제거 필수
★ 아무리 유능한 모델러여도 모델링 여러번 거쳐야함
데이터베이스
1. 개요
1.1 데이터와 정보
데이터 (data)
- 실세계의 실체를 묘사하는 값, 일차적
- 관찰이나 측정 등의 수단을 통하여 수집한 사실(facts), 값(values)
- 데이터를 일정한 체계나 규칙에 의해 정리해놓은 것
- 특정한 상황에 의사 결정을 내릴 수 있는 유용한 형태로 정리된 것
- ex. 대전시, 대전광역시, 대전... (data) ---> 우편번호(포맷)별로 정리된 자료 (info)
1.2 메타데이터
메타데이터
- 데이터에 대한 데이터 (데이터를 설명하는 내용)
- 데이터의 구조(structure)나 제약사항(constraints) 등과 같은 속성(properties)이나 특성(characteristics)을 기술하는 것.
- 레지스트리에 저장된 중요한 데이터
- ex) 오라클 내 워크스페이스에서 테이블 만들어질 때, 테이블 관련된 사항들 = 테이블 이름, pk 설정시 인덱스 이름...
? Component: 실행가능한 프로그램 단위 (!!문제점: 소스코드없이 실행파일만 제공되기때문에 오류나면 큰일난다)
? CBD: Component Based Development
2. 데이터베이스의 정의와 특성
2.1 정의
데이터베이스 (DB)
- 특정 조직 내에서 다수의 사용자들이 공유할 수 있도록 통합시키고 컴퓨터 저장 장치에 저장시킨 운영 데이터의 집합
? 연결지향성 : 내가 쓰고 있을 때 다른 사람들이 접근하지 못하도록 보호막을 침
? 비연결지향성 : 한번 접속해서 내컴터에 저장한 후에 연결끊고 남들 쓰도록 열어두는거..??
? commit: 내가 그동안 내린 명령을 신뢰할 때 최종저장하는키 (= 문서 save)
? commit을 내려야 내가 조작한 걸 하드데이터에 저장할 수 있음 (commit 안하면 메모리에만 남음)
- ex: 내가 query를 잘 못 내렸는데 잘 못 된걸 나중에 알았음. 그럼 roll back 이란 명령을 내려서 commit 이후부터 내린 명령을 다 취소시켜서 최후 commit 상태로 복귀가 되어짐.
2.2 특성
- 실시간 접근 (real-time accessibility)
- 계속적인 변화 (continuous evolution)
- 데이터베이스는 고정된 게아니고 항상 변하는 데이터값으로 저장되있는 경우가 대부분
- 행위 entity (=이벤트 발생) 에 의해 변화가 있을것
- ex) 재고: 100개 -- ( 누가 5개 구매 ) --> 95
- 동시 공유 (concurrent sharing)
- 내용에 의한 참조 (content reference)
- 주소에 의한 참조가 젤 빠르나 사용자들이 힘들어서 사용할 수가 없음.
- 보통 데이터베이스 구성시
- primary key : 기본키 (주민등록번호 ex,사번, 품번)
- artificial key : 원래없는건데 사람들이 구별하려고 만든 키
3. 데이터 처리 시스템
4. 파일 관리 시스템 vs 데이터베이스 관리 시스템
4-1. 파일 관리 시스템
- db 이전의 시스템
- 파일을 생성, 검색, 조작할 수 있는 소프트웨어
- 데이터를 파일로 정의 및 저장
- ex) 코블(atm, erp)로 만든 펄시스템은 파스칼같은데서 못씀
4-1-1. 파일 관리 시스템의 문제점
- 데이터 중복(data redundancy)
- 데이터 불일치 (data inconsistency)
- 응용 프로그램이 파일의 형식에 종속
- 프로그래밍 언어마다 파일의 형식이 다름
4-2. 데이터베이스 관리 시스템 (DBMS)
- 데이터들의 일관성 유지 = 중복제거 필수
- ex) 학사정보시스템: 학생주소 변경시 -> 교무과, 학적과, 성적과 전부 일치시켜야함
- 파일 관리 시스템의 단점 개선, 데이터 통합관리 소프트웨어 시스템
- 운영체제와 사용자사이에서 중간 역할
- 부지런한 녀석들.. 이라서 사람이 핸들링할 일이 별로 없음
- 계속 ready 상태 유지
? io.sis.command.com = 커널(유닉스,리눅스)
? 프로그램은 pure code로 구성되어있어서 사용자가 직접 접근할 수 없음.
? 커널) 쉘) 사용자 : 사용자는 커널에 직접 명령하는것같지만 실상은 쉘이 중간역할
? 이거 설명하신 이유: dbms 도 리눅스 쉘처럼 중간역할이라고...
4-2-1. DBMS의 문제점
- 시스템 이용 비용 (무료 버전: 5GB)
- 파일관리보다 상대적으로 느림
5. 데이터베이스 시스템 역사
5-1 대형시스템에서 소형시스템으로
- 1960년대(초창기) : 메인 프레임 컴퓨터에 탑재되는 제품들
- 1980년대 : 개인용 컴퓨터 탑재 가능
- 1980년대 이후 : GUI 환경을 채택한 제품들이 출시됨
? 컴터크기: 메인 프레임 컴퓨터 > 워크 스테이션 > PC