본문 바로가기

DB

(10)
MySQL 기본: SQL 고급 MySQL의 데이터 형식 MySQL에서 지원하는 데이터 형식의 종류 숫자 데이터 형식 문자 데이터 형식 날짜와 시간 데이터 형식 기타 데이터 형식 변수의 사용 SET @변수이름 = 변수의 값; // 변수 선언 및 값 대입 SELECT @변수이름; // 변수의 값 출력 SET @myVar1 = 5; SELECT @myVar1, Name FROM users WHERE height > 180; //이런식으로 사용 가능 데이터 형식과 형 변환 SELECT AVG(amount) AS '평균 구매 개수' FROM buys; SELECT CAST(AVG(amount) AS SIGNED INTEGER) AS '평균 구매 개수' FROM buys; SELECT CONVERT(AVG(amount), SIGNED INTEG..
MySQL 기본: SQL 기본 SELECT 문 원하는 데이터를 가져와 주는 기본적인 use 테이블 이름 USE employess; SELECT * FROM employees.titles; SELECT * FROM titles; SELECT first_name FROM employees; 작성 방법은 위와 같으며 특정 테이블에서 모든 속성, 특정 속성을 가져올 수 있고 특정 테이블의 속성에서 값을 가져올 수 있다. 특정한 조건의 데이터만 조회하는 SELECT * FROM USERS WHERE name = '김경호'; //기본적인 where절 SELECT userId, Name FROM users WHERE birthYear >= 1970 AND height >= 182; // 관계 연산자 이용 SELECT name, height FRO..
MySQL 기본: 데이터베이스 모델링 프로젝트의 진행 단계 프로젝트: 현실세계의 업무를 컴퓨터 시스템으로 옮겨놓는 일련의 과정 과거, 큰 규모의 프로젝트인 경우 무작정 코딩을 하는 경우가 많아 실패하는 경우가 많았다. 따라서 '소프트웨어 개발 방법론'이 나타났는데 가장 오래되고 전통적인 방법론은 폭포수 모델이다. 이 과정은 프로젝트의 계획 -> 업무 분석 -> 시스템 설계 -> 프로그램 구현 -> 테스트 -> 유지보수의 단계를 거친다. 하지만 프로젝트의 도중 요구사항이 바뀌거나 변화하는 요소가 자주 발생하기 때문에 요즘에는 애자일 방법론을 많이 선택하는 추세이다. 이렇듯 복잡한 시스템을 성공적으로 구현하기 위해서는 설계가 굉장히 중요하다. 데이터베이스 모델링 데이터베이스 모델링 개념 데이터베이스 모델링: 현실에서 쓰이는 것을 테이블로 변경하..
MySQL 설치 및 DB 구축과정 미리 실습하기: MySQL 전체 운영 실습 chapter 2는 MySQL 설치법만 나와 있어서 공식문서만 봐도 충분하기에 다음 챕터를 정리하고자한다. 요구사항 분석과 시스템 설계 그리고 모델링 정보시스템 구축 절차 요약 정보시스템을 구축하기 위해서는 일반적으로 분석 -> 설계 -> 구현 -> 시험 -> 유지보수 의 단계를 거친다. 분석 단계는 시스템, 요구사항을 분석하며 우리가 무엇(what)을 할지 결정한다. 다음으로 설계 단계에서는 우리가 구축하고자 하는 시스템을 어떻게(how)할 것인지 결정한다. 이 과정이 시스템을 구축하는데 가장 중요하고 많은 시간이 쓰이는 부분이기도 하다. 너무 추상적이므로 다음의 도서관리 시스템 예시를 통해 이해해보자 분석 단계: 사용자는 웹사이트를 통해 도서를 검색하고 선택할 수 있어야 한다. 사용자는 선택한 도서를..
MySQL 설치 및 DB 구축과정 미리 실습하기: DBMS 개요와 MySQL 소개 글 작성에 앞서 최근 데이터베이스 관련 지식을 꽤나 까먹은 것 같아 복습할겸 정리하고자 한다. 책은 '이것이 MySQL이다'를 보고 정리했다. 책은 총 4개의 파트로 이루어져 있고 각 파트당 챕터가 여러개 있는 형식이다. 글은 챕터단위로 작성할 것이며 챕터 내의 소제목을 기준으로 문단을 나눠 글을 작성할 것이다. DBMS 개요 데이터베이스의 정의와 특징 데이터베이스: 대용량의 데이터 집합을 체계적으로 구성해 놓은 것 DBMS: 데이터베이스를 관리하는 소프트웨어 시스템 데이터베이스의 특징 무결성: 데이터에 오류가 있으면 안됨 예시) 학생 데이터에서 모든 학생은 학번이 있어야 하며, 각 학생의 학번은 서로 중복되면 안 되는 제약 조건이 있다. 즉 학번이라는 데이터를 통해 무결한 데이터로 보장할 수 있다. 데..
정규화 정규화에 대해서 공부하기에 앞서 우리는 정규화를 왜 할까? 다음과 같은 특정 학생이 수강한 과목에 대해 테이블이 있다고 하자 이름 번호 과목명 과목번호 철수 1 수학 2 훈이 2 수학 2 철수 1 영어 1 짱구 3 수학 2 맹구 4 국어 3 이렇게 본다면 중복되는 데이터들이 있다. 철수와 철수의 번호에 대해서는 2번 중복이 되고, 수학과목은 3번 영어과목은 2번 중복이 된다. 이렇든 하나의 릴레이션에 여러 앤티티의 속성이 들어가게 된다면 데이터의 중복이 일어나게 된다. 이렇게 되면 저장 공간도 낭비이고, 갱신 이상도 발생할 가능성이 있다. 갱신이상은 다음과 같이 이루어져 있다. 삽입이상 불필요한 정보를 함께 저장하지 않고는 저장이 불가능한 것을 말한다. 예를들어 위의 릴레이션에서 수강신청을 하지 않았고,..
데이터베이스 인덱스 방대한 양의 데이터중에서 원하는 데이터를 찾으려면 하나씩 찾아봐야 해서 굉장히 많은 시간이 걸린다. 이러한 상황 때문에 검색의 효율을 늘리기 위해서 인덱스라는 자료구조를 사용한다. 책을 보면 앞에 목차를 통해 효율적으로 원하는 카테고리에 들어갈 수 있는데 다음 그림과 같이 index 또한 이와 비슷하다고 볼 수 있다. 인덱스의 특징 위와 같다면 인덱스를 사용하는것이 항상 옳다고 느껴질수도 있다. 하지만 다음과 같은 인덱스의 특징을 이해하고 사용한다면 더 좋은 성능의 데이터 베이스를 사용할 수 있을것이다. 데이터 베이스에 인덱스를 만들다 보니 필연적으로 인덱스가 차지하는 공간이 생기게 된다. 이는 약 DB의 10%에 해당되는 공간이다. 그럼에도 불구하고 인덱스를 사용하면 쿼리의 부하가 줄어들어서 결국 시스..
데이터 베이스의 시작 우리는 데이터 베이스에 대해서 간단하게 알고 있다. 그치만 보통 데이터 베이스가 왜 생겼고 왜 이러한 특징을 가지고 있는지에 대해서 알지는 못한다. 그저 사용하기만 할 뿐 호기심이 많은 사람이 아닌 이상 왜 데이터 베이스를 사용할까 라는 생각을 하기는 어렵다. 한번 공부를 할때 왜라는 질문을 가지며 공부를 하면 자연스레 이것이 가진 특징을 외우는것이 아닌 자연스레 익히게 되고 쉽게 잊어먹지 않을 것이다. 데이터 베이스의 유래 데이터 베이스는 무엇이고 왜 생겨났을까? 먼저 데이터베이스가 나오기 전에 우리는 파일 시스템을 사용했다. 우리가 독립적인 애플리케이션에서 파일시스템에 접근을 해서 데이터를 읽어와야 하는데, 이때 파일 시스템에 접근하는 방식이 응용프로그램 내에서 표현이 되어 응용프로그램과 파일시스템에..