[MySQL 기초] 6. 테이블 분리하고 JOIN하기
·
Database/MySQL
현재 테이블에는 중복의 문제가 포함되어있다. 데이터가 적을때는 처리하기 쉽겠지만, 데이터가 많아지면 그 처리를 일일이 해주기 힘들어진다. 이를 위해 테이블을 분리해보자. 미리 만들어둔 테이블은 지우기 아까우니 백업해두자. RENAME TABLE topic TO topic\_backup; topic 테이블을 아래와 같이 새로 만든다. CREATE TABLE `topic` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(30) NOT NULL, `description` text, `created` datetime NOT NULL, `author_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ); author 대신 autho..
[MySQL 기초] 5. CRUD
·
Database/MySQL
이전 포스팅에 이어서 진행하기 위해 db1을 사용. CREATE INSERT INTO 구문을 이용하여 행을 추가할 수 있다. INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); topic 테이블 구조 DESC topic; id값은 auto_increment로 지정해놓았기 때문에 별도의 추가가 필요없다. (물론 원한다면 해도 됨) INSERT INTO topic (title, description, created, authr, profile) VALUES('MySQL', 'MySQL is ...',NOW(),'wonillism','devaloper'); INSERT INTO topic (ti..
[MySQL 기초] 4. SQL과 테이블
·
Database/MySQL
SQL(Structured Query Language) SQL은 관계형 데이터배이스 카테고리에 속하는 제품들이 공통적으로 데이터배이스 서버를 제어할 때 사용하는 표준화된 언어이다. 테이블의 구조 실습 sudo mysql -uroot -p USE db1; CREATE TABLE topic( id INT(11) NOT NULL AUTO_INCREMENT, title VARCHAR(100) NOT NULL, description TEXT NULL, created DATETIME NULL, author VARCHAR(30) NULL, profile VARCHAR(100) NULL, PRIMARY KEY(id)); 더보기 Data Type Numeric TINYINT A very small integer SMAL..
[MySQL 기초] 3. MySQL 접속하기
·
Database/MySQL
MySQL 접속 sudo mysql -u root -p 최초 비밀번호는 그냥 enter 쳐도 무방하다. 비밀번호를 걸어주고싶으면 `Enter passward: `에 입력해주면된다. Database 생성 mysql> CREATE DATABASE db1; Database 삭제 mysql> DROP DATABASE db1; Database 확인 mysql> SHOW DATABASES; 특정 데이터베이스를 사용 선언 `mysql> USE db1;
[Database] Database란?
·
Database
Data 이론을 세우는데 기초가 되는 사실 자료. 관찰이나 실험, 조사로 얻은 사실이나 정보. (자료) 컴퓨터가 처리할 수 있는 문자, 소리, 그림 따위의 형태로 된 정보. Data가 중요한 이유는 Data를 가공해서 다양한 일을 할 수 있기 때문이다. 이를테면, 웹과 앱을 통해서 소식과 지식을 전파할 수 있고, 빅데이터 또는 인공지능과 같은 기술을 이용해서 대규모의 데이터로부터 통찰력있는 분석 결과를 뽑아낼 수도 있다. 이런 일을 하기위해서는 데이터를 저장하고 꺼내어 쓸 수 있어야 한다. 그 수단 중에 선택할 수 있는 첫번째 수단이 바로 File이다. 이 File에는 한계점이 있는데 성능, 보안, 편의성에 대한 한계를 가지고있다. 이 File이 가진 한계를 극복하기 위해 고안된 전문화된 Software..
[SQLD 개념 - 1과목 Part2. 데이터모델과 성능] 5) 데이터베이스 구조와 성능
·
자격증/SQLD
4) 데이터베이스 구조와 성능 1. 슈퍼/서브 타입 모델의 성능 고려 슈퍼/서브 타입 데이터 모델의 개요 분석 단계에서 논리적 데이터 모델에 사용하는 모델 업무 모습을 정확하게 표현하면서 물리적 데이터 모델로 변환할 때 선택의 폭을 넓힐 수 있다는 장점 데이터들이 갖는 공통점을 슈퍼타입으로 모델링하고, 다른 엔터티와 차이가 있는 속성(상속의 개념)에 대해서는 별도로 서브 엔터티로 구분한다 슈퍼/서브 타입 데이터 모델의 변환 슈퍼/서브 타입에 대한 변환을 잘못하면 성능이 저하되는데, 큰 이유는 트랜잭션 특성을 고려하지 않고 테이블이 설계됐기 때문이다 트랜잭션이 빈번하게 처리되는 기준에 따라 테이블을 설계해야 한다 즉, 슈퍼/서브 타입 성능을 고려한 물리적 데이터 모델로 변환하는 기준은 데이터 양과 테이블에..
[SQLD 개념 - 1과목 Part2. 데이터모델과 성능] 3) 반정규화와 성능
·
자격증/SQLD
3) 반정규화와 성능 1. 반정규화를 통한 성능향상 전략 반정규화의 정의 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상&개발&운영의 단순화를 위해 협의 : 데이터를 중복하여 성능을 향상시키기 위한 기법 광의 : 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정 정규화를 거치면 입력/수정/삭제 뿐만 아니라 조회에 대한 성능도 향상된다. 하지만 엔터티의 개수와 관계가 증가하기 때문에 여러 조인을 통해 데이터를 가져오는 경우가 발생한다. 이에 대한 해법으로 반정규화를 진행한다. 설계단계에서 반정규화를 적용하기 위해 함수적 종속관계는 위반하지 않는 선에서 데이터 중복을 허가 반정규화의 적용방법 칼럼 중복을 통한 반정규화 다른테이블에 조인하여 가져와야할 칼럼을,..
WONILLISM
'Database' 태그의 글 목록