본문 바로가기

데이터베이스

(14)
(MySQL) 데이터 타입 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com MySQL 데이터 타입 문자형 데이터 타입 정말 다양한 종류가 있지만, 큰 줄기 위주로 알아보겠습니다. 문자열에 대해서 이해하려면 기본적으로 일반적인 String과 Binary form, Lob에 대해서 이해해야 합니다. 데이터베이스에 문자가 저장될 때는 일반적인 String으로 저장될 수도 있지만 Binary 형태의 이진 데이터로 저장하는 경우도 있습니다. '그냥 문자열을 사용하면 직관적인데 왜 binary형태를 사용하나' 하면 일반적인 문자열로 표현할 수 없는 자료형을 표현할 때도 쓰이기 때문입니다. 예를 들면 이미지, 오디오 같은 멀티미디어 파일은 binary text 형태로 표현되기 때문에 일반적인 문자열로 표..
(MySQL) 와일드카드 기반 like 검색과 예시 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 와일드카드, like 검색 Like 검색은 조건 검색을 할 때 특정 column의 데이터가 특정 패턴을 포함하고 있는지 검색할 때 사용합니다. like검색 사용 시 MySQL에서는 5가지 와일드카드를 이용합니다. 아래 10가지 예시를 통해서 조금 더 쉽게 알아보겠습니다. Select * from customer 1. where customerName like ‘a%’ customerName column의 data가 a로 시작하는 모든 것을 찾아내라. 두 번째가 %기호이므로 글자 수 제한이 없기 때문에, 그냥 a만도 가능하고 apple도 가능하고 asaldfkjslkvcxoijewfoijeoisd도 가능하다. 2. wh..
(MySQL) Index 개념과 종류 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 인덱스 인덱스 인덱스는 데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다. 인덱스는 테이블 내의 1개의 컬럼, 혹은 여러 개의 컬럼을 이용하여 생성될 수 있다. 고속의 검색 동작뿐만 아니라 레코드 접근과 관련 효율적인 순서 매김 동작에 대한 기초를 제공한다. -위키백과- 인덱스를 사용하는 이유는 빠른 검색을 보장하기 위함입니다. 인덱스를 설정하지 않고 그냥 검색을 한다면 매번 테이블 전체를 풀 스캔 하여 조건에 맞는 데이터를 검색합니다. 몇만 건, 몇십만 건 정도면 크게 문제가 되지 않을 수도 있지만 데이터가 수백수천만 건이 되고 요청 트랜잭션 수도 많아진다면 성능 면에서 큰 저하가..
트랜잭션 ACID 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 트랜잭션 ACID 지난 글에서는 트랜잭션의 개념에 대해서 알아보았습니다. ACID는 큰 주제여서 따로 빼서 새로운 글로 다룬다고 말씀드렸었는데 오늘 다뤄보겠습니다. ACID란? ACID ACID는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다. 그 종류에는 원자성(atomicity), 일관성(consistency), 격리성(isolation), 영속성(durability)이 있다. -위키백과- 트랜잭션이 반드시 보장해야 하는 4가지 성질입니다. 트랜잭션이 궁금하시면 audgnssweet.tistory.com/45?category=846241 를 참고하세요. 그럼 본격적으로 AC..
모델링 개념 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 모델링 기초 모델링 데이터 모델링이란 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업을 말하며, 일반적으로 이를 물리적인 데이터베이스 모델로 환원하여 고객의 요구에 따라 특정 정보 시스템의 데이터베이스에 반영하는 작업을 포함한다. 후자의 의미로 흔히 데이터베이스 모델링으로 불리기도 한다. - 위키백과 - 프로그래밍에서 모델링은 간단하게 말해서 db스키마를 만드는 작업을 의미합니다. 모델링 -> 스키마 생성 -> SQL 생성 또한 모델링은 현실 세계를 추상화, 단순화, 명확화 하여 DB에 맞게 표현하는 것을 의미합니다. 모델링 3단계 1. 개념 모델링 (outline 설계) EA: DB만이 아니라 DB가 속한 ..
MySQL 트랜잭션 개념과 예제 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 트랜잭션 트랜잭션 데이터베이스 트랜잭션은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. -위키백과- 간단히 말해서, 트랜잭션이란 데이터베이스에서 여러 명령이 묶인 작업의 한 단위를 의미합니다. 트랜잭션으로 명령들의 묶음을 한 단위로 만들어 단위만큼 한꺼번에 DB에 명령을 반영한다던가 단위만큼 한꺼번에 DB에서 명령을 취소한다던가 하는 행위가 가능합니다. 트랜잭션은 보장한다는 것은 ACID(원자성, 일관성, 격리성, 내구성)를 보장한다는 것입니다. ACID는 그 내용이 깊어 다음..
MySQL DCL 예제 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com DCL DCL 권한을 다루기 위한 SQL입니다. DCL 예제 1. 사용자 생성 create user '유저 이름'@'접속장소(IP)' identified by '비밀번호'; 위와 같이 새로운 유저로 접속이 되는 것을 볼 수 있습니다. 그러나 아무 권한도 없기 때문에 어떤 DB에도 접근할 수 없습니다. 2. 사용자 삭제 drop user '유저이름'@'접속장소' 삭제된 유저이기 때문에, 접속할 수 없는 것을 볼 수 있습니다. 3. 사용자 권한 부여 grant '권한들' on 'DB이름', '테이블' to '유저 이름'@'접속장소' DB나 Table 자리에 * 을 넣어주게 되면, '모든'이라는 뜻을 가집니다. 위와 같이 ..
MySQL DDL 예제 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com DDL DDL DB Schema를 다루기 위한 SQL 즉, DB, table을 생성하고 수정하고 삭제하는 SQL을 총칭합니다. MySQL DDL 예제 1. DB 만들기 create database 'DB이름' 새로운 DB sample이 생긴 것을 확인할 수 있습니다. 2. DB 없애기 drop database 'DB이름' DB sample이 없어진 것을 확인할 수 있습니다. 3. Table 생성하기 create table 'table이름' ( 'column이름' '자료형' '제약조건' ); 새로운 table persons가 생긴 것을 확인할 수 있습니다. 4. Table 생성 SQL문 보기 show create tab..