새로고침 버튼을 눌러주면 테이블이 많이 생겨난 것을 볼 수 있다.
일단 문법은 생각하지 말고 따라 쳐보자.
SELECT * FROM EMP;
Ctrl + Enter 행 실행
(F5 전체 실행)
실행해보면 저장된 데이터들이 예쁘게 뜬다.
저장된 테이블에서 DEPTNO는 부서 번호를 뜻한다.
근데 부서 번호만 보고서는 뭐하는 곳인지, 어디 있는 부서인지 알 수가 없다.
SELECT * FROM DEPT;
한 문장을 더 치고 Ctrl + Enter키를 눌러준다.
부서와 관련된 테이블이 다시 뜰 것이다.
여기에 부서의 정보들이 저장되어 있다.
그렇다면 왜 부서의 세부 데이터들을 같이 저장해놓지 않고
따로 저장해두었을까?
데이터베이스는 오브젝트를 저장하지 못하기 때문이다.
그래서 오브젝트의 키값을 저장한 것이다.
데이터베이스는 전부 기본 자료형만 넣을 수 있다.
즉, 모든 자료의 사이즈를 알고있다는 것이다.
사이즈를 모르는 데이터는 넣을 수 없다.
자바에는 커스텀 자료형이 있지만
데이터베이스는 커스텀 자료형같은게 없다.
오브젝트를 넣을 수 없으니까.
package site.metacoding.dbtest;
// 데이터베이스 자료형
class Dept {
private int deptno;
private String dname;
private String loc;
}
public class Emp {
private int empno;
private String ename;
private String job;
private int mgr;
private String hiredate;
private int sal;
private int comm;
private int deptno;
}
package site.metacoding.dbtest;
// 자바 자료형
class Dept {
private int deptno;
private String dname;
private String loc;
}
public class Emp {
private int empno;
private String ename;
private String job;
private int mgr;
private String hiredate;
private int sal;
private int comm;
private Dept dept;
}
따라서 자바와 오라클은 데이터가 불일치한다.
그렇기 때문에 통신을 할 때는 json을 사용한다.
지금은 오라클에 맞춰서 자료형을 만들어줄 거지만
나중에는 불일치한 데이터를 일치시키는 기술을 배울 것이다.
데이터베이스는 데이터를 한 곳으로 모아서
공유를 하기 위한 목적으로 만들어졌다.
공유를 목적으로 하니까 데이터의 중복이 있어선 안된다.
데이터를 공유하고 중복을 최소화할 때
오브젝트 데이터가 들어가면 중복이 매우 많이 일어나게 된다.
그래서 최소한의 데이터인 key만 저장해준다.
이 키를 기본키(primary key)라고 한다.
기본키는 행을 구분할 수 있는 유일한 키여야 하기 때문에 primary key인 것이다.
유일한 키가 없다면 관계할 수 없다.
이렇게 기본키를 이용해 관계를 가진 데이터베이스를
RDBMS(Relational DBMS)라고 한다.
∴ 데이터베이스는 중복을 피하고 공유한다.
데이터베이스의 무결성(Integrity)을 지키기 위함이다.
RDBMS는 데이터의 정확성이 100% 지켜져야 할 때,
완벽하게 신뢰성을 가져야 할 때 사용한다.
[출처]
https://cafe.naver.com/metacoding
메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9