Loading...

DB/Oracle / / 2022. 1. 28. 16:50

DB 4강. 자바와 데이터베이스

반응형

새로고침 버튼을 눌러주면 테이블이 많이 생겨난 것을 볼 수 있다.

 

일단 문법은 생각하지 말고 따라 쳐보자.

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

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형