전체 글

클래스의 인스턴스를 만들고자 할 때 new라는 Java 언어의 키워드를 사용해서 클래스 이름을 지정하고 인스턴스를 생성한다. new ClassName(); new를 사용해 인스턴스를 만들 때는 클래스 이름을 반드시 지정해야만 한다. 클래스 이름을 지정하지 않고 인스턴스를 생성하고 싶을 때도 있다. 클래스에서 인스턴스를 생성하는 대신 인스턴스로부터 다른 인스턴스를 생성하는 Prototype 패턴 인스턴스로부터 다른 인스턴스를 생성하는 것은 복사기로 문서를 복사하는 것과 비슷하다. 원본 서류를 어떻게 만들었는지 모르더라도 복사기에 넣으면 같은 서류를 몇 장이든 만들 수 있다. ‘원형’이 되는 인스턴스를 바탕으로 새로운 인스턴스를 만든다. Java에서는 복제하는 조작을 ‘clone’이라고 부른다. Java 언..
정규화란 DB의 테이블을 규정된 올바른 형태로 개선해 나가는 것이다. DB의 설계 단계에서 행해진다. 기존 시스템을 재검토할 때 정규화하는 경우도 있다. 정규화 (쇼핑물 사이트의 주문처리 시스템) 상품은 상품코드를 이용해 다루어 보자 주문번호 날짜 성명 연락처 주문상품 1 1/1 박준용 010-xxxx 0001 OO 1개, 0002 XX 10개 2 2/1 김재진 010-xxxx 0001 OO 2개, 0002 XX 3개 3 2/5 박준용 010-xxxx 0001 OO 3개, 0003 AA 1개 ‘0001 OO 1개’은 상품코드가 0001인 상품 OO를 1개 주문 했다는 뜻이다. 대충 만들어진 데이터를 정규화해 DB테이블로 만들어보자 정규화의 순서는 이전의 DB 기술자들이 고안해 정리한 것이다. 정규화 하는..
DB는 트랜잭션이라는 기능을 제공한다. INSERT나 UPDATE 명령으로 데이터를 추가, 갱신할 때도 트랜잭션 기능을 사용한다. START TRANSACTION COMMIT ROLLBACK 지금까지 특별히 의식할 필요가 없던 이유는 자동 커밋이라 불리는 기능이 동작했기 때문이다. 트랜잭션 정규화에 의해 분할된 주문 테이블과 주문상품 테이블의 관계를 생각해보자 주문 테이블에 행이 존재한다면 주문상품 테이블에는 적어도 하나의 행이 존재해야 한다. 그렇지 않으면 주문한 상품이 없는데 주문이 된 상태가 된다. 테이블 사이에는 의존관계가가 존재한다. 발주처리 주문이 발생했을 때 생각해보자 발주처리에 관한 것으로 먼저 주문번호를 지정해야 한다. 기존 주문과 구분되는 주문번호를 발행하는 처리가 필요하다. 자동 증가..
테이블 집합 연산에서는 세로(행) 방향으로 데이터가 늘어나거나 줄어드는 계산을 했다. join을 통한 결합에서는 가로(열) 방향으로 데이터가 늘어나는 계산이 된다. 보통 데이터베이스는 하나의 테이블에 많은 데이터를 저장하지 않고 몇 개의 테이블로 나누어 저장한다. 여러 개로 나뉜 데이터를 하나로 묶어 결과를 내는 방법이 테이블 결합이다. 결합을 이해하는 동시에 기본이 되는 개념이 집합론의 ‘곱집합’이다. 곱집합과 교차결합 곱집합은 합집합이나 교집합처럼 집합의 연산 방법 중 하나이다. 두 개의 집합을 곱하는 연산 방법으로 ‘적집합’ 또는 ‘카티전곱(Cartesian product)’라고 불린다. 집합 X 는 {A, B, C} 집합 Y는 {1, 2, 3}이라는 세 개의 요소를 가진다. 집합 X와 Y의 곱집합..
집합 연산 관계형 모델에서의 관계형은 수학 집합론의 관계형 이론에서 유래했다. 데이터베이스의 데이터를 집합으로 간주해 다루기 쉽게 하자는 것 SQL과 집합 원 안에 적혀있는 숫자가 요소에 해당한다. 데이터베이스에서는 테이블의 행이 요소에 해당한다. 행은 여러 개의 열로 구성되는 경우도 있으므로, 수치 상으로는 복수의 값이 존재한다. 집합의 요소라는 측면에서 보면 하나의 행이 곧 하나의 요소가 된다. SELECT 명령을 실행하면 데이터베이스에 질의하며 그 결과 몇 개의 행이 반환된다. 반환된 결과 전체를 하나의 집합이라고 생각하면 된다. UNION으로 합집합 구하기 2개의 집합A,B로 A = {1, 2, 3}, B = {2, 10, 11} 이라는 세개의 요소가 있을 때 2라는 요소는 A,B집합에 모두 존재..
uhanuu
몸뚱아리부터 마음가짐까지