본문 바로가기

DATABASE

(10)
MySQL (2) - MySQL Client(Workbench) MySQL을 설치하면 MySQL은 두 개의 프로그램을 동시에 설치한다, 하나는 데이터베이스 클라이언트이고, 하나는 데이터베이스 서버이다. 데이터베이스 서버에는 실제로 데이터가 저장되고, 데이터베이스 클라이언트를 통해 우리는 데이터베이스 서버에 접속할 수 있다. MySQL의 데이터베이스 클라이언트인 MySQL 모니터(검은창)은 명령어를 통해 제어하는 명령어 기반 프로그램이다. 어디서든 실행할 수 있다는 장점이 있으나 명령어를 기억하고 있어야 하는 단점이 있다. Workbench는 MySQL의 또 다른 데이터베이스 클라이언트로, GUI를 기반으로 제어할 수 있다. Workbench는 이렇게 내가 만든 표를 GUI 환경으로 확인할 수 있다. 해당 아이콘을 눌러 스키마를 추가할 수도 있으며, 추가한 스키마는 다..
MySQL (1) - 테이블 생성, CRUD, JOIN 인류는 오래전부터 컴퓨터를 이용해서 정보를 장하고 관리하고 싶어했으며, 그러한 마음에서 File이라는 정보관리 도구가 생겨나게 되었다. 하지만 File만으로는 정보를 효과적으로 입력, 저장, 출력하기가 어려워지면서 데이터를 잘 정리정돈하여 필요할 때 쉽게 꺼내 쓰고싶은 욕심이 생겼다. 파일의 한계를 극복하기 위해 만들어진 소프트웨어들을 DATABASE 라고 부른다. 데이터베이스 이후 관계형 데이터베이스가 출현하였고 데이터베이스의 절대 강자가 되었다. -유튜브 '생활코딩' 中 관계형 데이터베이스는 데이터를 표의 형태로 정리정돈 할 수 있고 정렬, 검색과 같은 기능을 빠르고 안전하게 할 수 있으며 MySQL, Oracle, SQL Server, DB2와 같은 제품들이 모두 관계형 데이터베이스이다. 이 중 M..
관계형 데이터 모델링(3) - 물리적 데이터 모델링 관계형 데이터 모델링의 마지막 순서인 물리적 데이터 모델링에 대해 알아보자. 논리적 데이터 모델링이 관계형 데이터베이스에 맞는 이상적인 표를 만드는 것이라면, 물리적 데이터 모델링에서는 이상적인 표를 구체적인 제품에 맞는 현실적인 표로 만드는 것으로, 여기서는 성능을 향상시키는 방법이 중요한 요소이다. Denormalization(역정규화, 반정규화) 정규화를 통해 이상적인 표를 만들었지만, 성능과 개발의 편의성을 위해 정규화 이전으로 표의 구조를 바꾸는 것을 역정규화, 또는 반정규화라고 한다. 성능을 위해 역정규화가 필요할 때도 있으나, 일단 정규화를 먼저 하고 난 다음에 필요하다면 역정규화를 하는 것이 이상적인 순서이며 정규화가 무조건 성능을 저하시키는 것은 아니다. -유튜브 '생활코딩' 中 정규화를..
관계형 데이터 모델링(2) - 논리적 데이터 모델링 데이터 모델링의 순서인 업무 파악 -> 개념적 데이터 모델링 -> 논리적 데이터 모델링 -> 물리적 데이터 모델링 중, 논리적 데이터 모델링에 대해 알아보자. 논리적 데이터 모델링이란? 개념적 데이터 모델링에서 뽑아낸 개념을 관계형 데이터베이스에 어울리도록 데이터 형식을 잘 정리정돈 하는 것이다. Mapping rule을 사용할 수 있다. Mapping Rule은 ER 다이어그램을 통해 표현한 내용을 관계형 데이터베이스에 맞는 형식으로 전환할 때 사용할 수 있는 방법론이다. 이런 식으로 그려보는 것! Entity는 Table로, Attribute는 Column으로, Relation은 PK,FK로 전환하면 된다. 테이블에 컬럼을 추가할 때 해당 컬럼에 들어가는 속성의 여러가지 제약조건(데이터의 형식, 길이..
관계형 데이터 모델링(1) - 개념적 데이터 모델링 모델이란? 어떤 목적을 가지고 진짜를 모방한 것, 좋은 모델이란 목적에 부합하는 모방. 우리의 목적은 컴퓨터(관계형 데이터베이스, 표)에 정보를 담는 것이다. 정보를 데이터베이스(표)에 담는 것에 성공만 하면 거대한 데이터 양을 엄청난 속도로 다룰 수 있기 때문이다. 하지만 무한히 거대하고 복잡한 현실을 정보로 만들어서 표에 담는 것은 매우 어렵다. 전문가들은 평범한 사람들도 현실의 복잡성을 컴퓨터에 담을 수 있는 방법론을 만들었는데, 이것을 데이터모델링 이라고 한다. 데이터 모델링이란, 문제를 현실로부터 뜯어내서 고도의 추상화 과정을 거쳐 컴퓨터라는 새로운 현실로 옮겨 담는 작업이다. 출처 : https://www.youtube.com/watch?v=1d38YZKCM88&feature=emb_title..
SQL JOIN - LEFT OUTER JOIN, INNER JOIN SQL JOIN이란? 관계형 데이터베이스에서 여러 개의 테이블을 묶어 하나의 테이블로 만드는 기술이다. "여러 개의 표로 분산된 정보를 결합해서 하나의 단일한 표로 만드는 기술 = JOIN" 정보를 저장하고 처리하는 관계형 데이터베이스의 가장 중요한 기능이 join이다. 어떤 종류의 join이 있는지, 어떻게 동작하는지를 잘 알아야 준수한 관계형 데이터베이스 사용자라고 할 수 있다. topic 테이블(표)에 이렇게 중복되는 행(노란색)이 발생한다. 중복되는 행은 데이터의 용량을 아주 많이 쓰고, 천만 개의 데이터가 있다면 중복되는 행이 변경될 때 천만개의 데이터를 수정해야 한다. 따라서 중복을 제거하는 것은 중요하다. 또한 추가로 comment 테이블을 만들고 comment에 id, description..
ORACLE DATABASE - PRIMARY KEY, SEQUENCE 학번이나 주민등록번호와 같은 숫자는 식별한다, 구별한다의 기능을 한다. 수많은 데이터를 데이터 저장소에 저장할 때, 우리는 이러한 식별자가 필요하다. 식별자의 가장 중요한 특징은 중복되면 안된다는 것이다. 따라서 중복되는 경우는 실행을 하지 않고 중복 되지 않을 경우만 실행을 하는 기능 필요해진다. 이 기능을 PRIMARY KEY 라고 한다. (=기본키, 주키) PRIMARY KEY는 테이블을 생성할 때 지정하거나 alter 라는 키워드로 나중에 추가할수도 있는데, 처음 테이블을 생성할 때 지정하는 것이 좋다. 테이블 생성시 CONSTRAINT 키워드로 제약조건을 걸고, PRIMARY KEY로 만들 고유한 식별자 컬럼을 선택한다. PRIMARY KEY로 지정한 컬럼 안에는 중복되는 값이 들어올 경우 무결..
ORACLE DATABASE - 데이터의 CRUD 저번 게시글에서도 말했지만 어떤 데이터베이스를 다루건 데이터베이스는 공통적으로 CRUD의 기능을 가진다. 이번 게시글에서는 표(테이블) 안의 데이터를 CRUD 하는 방법에 대해 알아보자 C : 데이터를 추가하기(생성하기) R : 데이터를 읽어오기 U : 데이터를 수정하기 D : 데이터를 삭제하기 어떻게 데이터를 생성하는가? 데이터 추가하기 만들어진 테이블에는 INSERT INTO 키워드로 컬럼에 데이터를 추가할 수 있다. //topic 테이블에 행을 추가하고 싶을때 INSERT INTO topic (id,title,description,created) //해당 컬럼에 값을 넣는다 VALUES //값의 구체적인 내용 (1,'ORACLE','ORACLE is ...', SYSDATE); 위와 같이 INSER..
ORACLE DATABASE - 사용자 생성하기, 권한 부여하기, 테이블 생성하기 세상에는 여러가지 데이터베이스가 존재한다. 그래프형, 문서형, 오브젝트형, 키-밸류형 등등... 그 중 가장 많이 쓰이는 데이터베이스는 관계형 데이터베이스이다. 관계형 데이터베이스의 핵심은 표 이다. 표?? 정보기술의 위대한 성취, 인류가 만든 시각화도구. 어떤 정보건 열과 행의 틀에 따라 정보를 정리정돈 할 수 있다. 즉 정보를 2차원으로 표현할 수 있다. 관계형 데이터베이스는 표라는 위대한 성취를 기계화한 것이다. 정보를 표로 표현하기만 하면 정보를 매우 이해하기가 쉬워진다. 이렇게 만들어진 표를 기계화시키면 기계가 가진 엄청난 능력을 가진 표 로봇을 만들수 있게 된다. 관계형 데이터베이스의 가장 인기있는 제품은 오라클이다. (비싸다는 단점이 있다) 에디션(제품) 익스프레스(무료) 퍼스널 스탠다드 엔..
DBMS에 대하여 데이터베이스 관리 시스템(영어: database management system, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. 데이터베이스 - 위키백과, 우리 모두의 백과사전 SQL 데이터베이스 쿼리의 예. 데이터베이스(영어: database, DB)는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다.[1] 작성된 목록으로써 여러 응용 시스템들의 ko.wikipedia.org 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다. 이전에 우리는 File을 통해 데이터(정보)를 정리하였고, 데이터가 방대해지자 정돈하기 위한 구조가 필요해졌다. 구조적으로 데이터를 정돈하게 되면 데이터..