[210514금] 오라클 설치, 데이터베이스 제약조건 6가지, DDL, DML, DCL, 데이터 이상현상
[1교시]
오라클 설치 시 있어야할 응용 프로그램
1) 자바
2) 오라클 설치(커뮤니티 버전, 무료버전 사용예정- 유료와 어드민쪽만 차이가 있다.)
3) sqldeveloper
오라클 10일 공부 후 자바로 돌아가 연동하는 법 배울 것!
오라클 패스워드
어드민 계정 중 SYSTEM 사용할 것이고, 비번은 소문자로 system
[2교시]
자동차의 종류가 많냐, 고객이 많은가?
일반적으로 고객정보테이블보다는 자동차 혹은 제품테이블이 부모 테이블이 되는 것이 좋다.
부모 테이블 : 주체적인 역할 담당
부모보다 자식의 테이블이 큰 것이 더 좋기 때문이다.
→ 오라클에서의 상속의 개념은 자바의 상속 개념과 전혀 다르다. 오라클에서의 상속의 의미는 부모테이블과 자식테이블이 관계를 맺는다는 개념이다.
Primary Key(Unique, Not Null)
- 유일하게 각각의 레코드를 구별할 수 있는 키이다. (Unique = no duplicate)
- 꼭 값을 가지고 있어야 한다.(Not Null)
- Primary Key를 갖는 쪽이 부모테이블이 된다.
Foreign Key(외래키, duplicate, Null):
- 관계 형성을 통한 부모 테이블의 기본키 전이 (연결하기 위해 데이터에 전혀 상관없는 데이터를 갖다 넣는 것)
- 중복 가능하다.
- Null 값을 가져도 된다.(Null이 허용되진 않지만 가능하다.)
- 자식 테이블 (부모 자식간의 관계 형성)
→ 부모테이블과 자식테이블이 맺어진 것을 관계가 형성되었다고 한다. Primary Key와 Foreign Key는 관계를 형성하기 위해 만들어진 것이다.
부모테이블의 데이터, 정보를 삭제하면 자식 테이블 전체가 잘못되었다고 생각한다. 그렇기 때문에 부모테이블의삭제를 막아버린다.
[데이터 베이스의 이상현상 3가지]
→ 관계를 맺으면 여러가지 이상현상이 발생한다.
- 삭제이상(delete)
- 갱신이상(insert) : 데이터 수정 후 자식테이블에서 문제가 발생
- 삽입이상(update) : 자식에 데이터를 넣으려고 했는데 문제 발생
후보키 : 주민번호, 생년월일 등이 후보키가 되는 것이다.
레코드: 오른쪽으로 연결되어 있는 데이터
[제약조건 6가지(Constraints)]
- PK
- FK : 컬럼명 중 ID라고 붙어있으면 거의 KEY라고 생각하면 된다.
- NN : ex) 이메일을 보낼 때 제목을 작성하지 않은 경우 제목없음 입력해주세요.
- Check : 데이터를 한정시키는 것(남자, 여자, 남, 여, W, M)
- Unique
- defalut : 사용자가 값을 입력하지 않으면 자동으로 들어가는 값!
무결성: 데이터를 100%로 신뢰할 수 있다. 결점이 없는 데이터라고 생각하면 이해하기 쉽다.
on delete cascade: 삭제이상의 문제를 해결하기 위해 부모-자식의 데이터가 같이 날리는 것이다. 부모테이블을 삭제하면 해당되는 자식테이블 또한 삭제되는 옵션이다.
[테이블 설계]
Board
게시판
게시판 번호
글쓴이
글 제목
글 내용
조회수
등록 날짜
첨부 파일명
DDL(Datebase Definition Langauge) 정의어 :
- Object 생성, 삭제, 수정(create, drop, alter)
→ Object 객체 : table, view, index, sequence, user, synonym
★DML (Datebase Manipullation Langauge) 조작어 :
- insert, delete, update, select
- 데이터를 집어 넣는 동작! 테이블이 있어야만 데이터를 넣을 수 있다.
DCL(Data Control Langage) 제어어:
- 데이터를 컨트롤하는 언어
- grant(신입사원에게 권한을 부여), revoke(권한 회수)
TCL : Transaction Control Langage
: 트랜잭션의 논리적인 작업의 묶음
- Commit(작업한 것을 저장), Rollback(작업 취소), SavePoint(작업 중 일부만 취소, 어디까지 저장하겠다고 걸어두는 것)
- 돈을 출금하기 위한 과정, 메뉴 선택 등등 행위로 이루어짐, 이 순서가 뒤집어지면 안된다. 순서가 있는 과정하나의 묶음!! 다른 행위를 간섭하면 안된다. 행위 하나가 끝나면 그것을 저장하겠다라면 Commit, 모든 행위를 취소시키는 것이 Rollback이다.
- 트랜잭션을 일으키는 명령문 insert, update, delete을 확정시키고 싶을 때 Commit
- insert를 5번 실행한다면 이것이 트랜잭션, 후에 저장(commit)하면 rollback이 안되고 전체를 다 지울 수는 있다.
- savepoint를 걸어두면 롤백하고자 하는 지점
- 작업할 때 Commit을 누르는 습관!
- drop한 것은 Rollback할 수 없다.
- 데이터베이스에 접속하자마자 트랜잭션이 시작된 것이다.
iiic 트랜잭션 마무리 이후 또 생성 dddiii
- savepoint는 눈으로 보여지지 않기 때문에 논리적 작업을 기억해둬야 한다.
[3교시] 오라클 설치
시작프로그램> cmd
: 계정을 풀어줘야할 때 사용
sqlplus 입력 → ID: system, PW: system → show user → alter user hr identified by hr account unlock;
우리가 알고 있지 않은 명령문은 sqlplus의 명령문
SQL> alter user hr identified by hr account unlock;
→ lock을 풀고 비밀번호 수정
cmd는 검정바탕의 화면, 우리가 사용하는 것이 어려우니까 sqldeveloper를 사용할 거예요.
jdk가 들어있는 파일 선택
oracle은 보통 서버 컴퓨터에 작업
외부에서 접속하는 것임
우리가 가진 계정은 두개
system과 hr
우리가 사용할 것은 hr, system은 관리자용
테스트 후 저장