MySQL(Structured Query Language)

by 파시스트 posted Aug 03, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄


489px-MySQL_svg.png



1.MySQL 이란 무엇인가?


표준 데이터베이스 질의 언어인 SQL(Structured Query Language)을 사용하는 개방 소스의 관계형 데이터베이스 관리 시스템(RDBMS). 매우 빠르고, 유연하며, 사용하기 쉬운 특징이 있다. 다중 사용자, 다중 쓰레드를 지원하고, C, C++, Eiffel, 자바, 펄, PHP, Python 스크립트 등을 위한 응용 프로그램 인터페이스(API)를 제공한다. 유닉스나 리눅스, 윈도 운영 체계 등에서 사용할 수 있다. LAMP, 즉 리눅스 운영 체계와 Apache 서버 프로그램, MySQL, PHP 스크립트 언어 구성은 상호 연동이 잘되면서도 오픈 소스로 개발되는 무료 프로그램이어서 홈 페이지나 쇼핑몰 등 일반적인 웹 개발에 널리 이용되고 있다. mySQL은 오픈 소스 라이선스를 따르기는 하나 상업적으로 사용할 때에는 상업용 라이선스를 구입해야 한다. 공식 사이트는 www.mysql.com 이다.


MySQL(마이에스큐엘, /maɪ ˌɛskjuːˈɛl/ 통용 발음: 마이씨퀄 /maɪ ˈsiːkwəl/)은 진정한 멀티유저, 멀티 쓰레드 SQL(Structured Query Language)데이타베이스 서버입니다. SQL은 가장 널리 쓰이는 DB질의어 이구요. MySQL 은 DB서버 데몬인 mysqld 와 여러 가지 이용자 프로그램 그리고 라이브러리로 구성되어 있습니다.


MySQL의 주목표는 속도, 뛰어난 수행능력 그리고 사용의 편리함입니다. 애초에 MySQL은 TcX 내부에서 자체적으로 사용할 목적으로 만들어 졌습니다.그 당시 어떤 제조업체가 제공하는 SQL 서버 보다 강력한 DB서버가 필요했기 때문이지요. TcX에서는  MySQL을  1996부터 사용해 왔는데 현재 700만 레코드 이상 되는 500개 이상의 테이블이 (100 기가 바이트 이상)  주요 업무에 사용되고 있다고 합니다.


MySQL은 높은 수행능력을 발휘하는 것을 목표로 수년 전 개발이 시작되었습니다.여전히 개발이 진행 중이지만 매우 풍부하고 쓸만한 함수들을 제공합니다
(PHP3와 최적으로 연동됩니다)

참고 )MySQL의 공식발음은 "마이에스큐엘"입니다.

MySQL 주요 기능

kernel threads를 이용, 완벽한 multi-threaded를 지원합니다 (복수 CPU 지원 가능)
C, C++, Java, Perl, Python ,TCL 의 API를 지원합니다.
수많은 운영체제에서 안정적으로 동작합니다.
여러 가지 매우(!) 편리한 column types을 지원합니다.
- signed/unsigned integers long, FLOAT , DOUBLE , CHAR , VARCHAR , TEXT , BLOB , DATE , DATETIME , TIMESTAMP , YEAR , SET , ENUM
매우 빠르게 joins 을 수행합니다.
모든 연산자와 함수를 SELECT 와 WHERE 문에서 지원합니다.
 mysql> SELECT CONCAT (first_name, " ", last_name) from tbl_name
            WHERE income/dependents > 10000 AND age > 30;
SQL GROUP BY 와 ORDER BY 문을 완벽하게 지원 합니다.
   group functions ( COUNT() , AVG() , STD() , SUM() , MAX() and MIN() )등 사용 가능
ANSI SQL 과 ODBC syntax에서  LEFT OUTER JOIN 을 지원 합니다.
서로 다른 DB 내의 테이블들의 Join 이 가능합니다.
사용자 권한(privilege)을 유연하게 관리 할 수 있습니다
ODBC (Open-DataBase-Connectivity) for Windows95 (with source)를 지원합니다.
테이블 당 16 개의 인덱스 생성이 가능합니다. 각 인덱스는 1~ 15 의 컬럼으로 구성 되며
   최대 256 bytes크기  입니다
규모가 매우 큰 테이블을 사용할 수 있습니다.( 50,000,000 records 이상)
C 와 C++을 이용해 작성되었으며 많은 compilers에서 테스트 되었습니다.
ISO-8859-1 Latin1 character set을 지원합니다
SQL92표준에 따라 tables 과 columns 에 별명(alias)을 사용할 수 있습니다
DELETE , INSERT , REPLACE ,  UPDATE 후 결과 행수를 리턴 합니다.
함수이름과 동일한 테이블 명, 컬럼 명을 사용 할 수 있습니다.
에러메시지의 다국어 지원이 가능합니다.(한국어는 아직...)
TCP/IP socket을 이용 원격 MySQL서버에 접속할 수 있습니다.


버전 별 두드러진 특징은 다음과 같다.
1994년 MySQL의 원 개발(마이클 위데니우스와 데이빗 액스마크에 의한)
1995년 5월 최초의 국제화판
3.19 판: 1996년 말, www.tcx.se에서
3.20 판: 1997년 1월
1998년 1월 8일 윈도 판(Windows 95와 NT) 출시
3.21 판: 제품 출시 1998년 www.mysql.com 에서
3.22 판: 1998년부터 알파, 베타판
3.23 판: 2000년 7월 베타판으로부터, 2001년 1월 22일 제품 출시
4.0 판: 2002년 8월 베타판으로부터, 2003년 3월 제품 출시(unions)
4.01 판: 2003년 8월 베타판으로부터, Jyoti[모호한 표현][출처 필요] 데이터베이스 트래킹용으로 MySQL 채택
4.1 판: 2004년 6월 베타판으로부터, 2004년 10월 제품 출시 (R 트리와 B 트리, 서브쿼리, prepared statements 지원)
5.0 판: 2005년 3월 베타판, 2005년 10월 제품 출시(커서, 저장 프로시저, 트리거, 뷰, XA 트랜잭션 지원)
페더레이티드 스토리지 엔진의 개발자는 다음과 같은 말을 했다. "Federated 스토리지 엔진은 proof-of-concept 스토리지 엔진이지만", 주요 MySQL 5.0 판에 포함되어 기본값으로 활성화되어 있다. "MySQL Federated 테이블에 일부 단점들을 정리한 문서 : The Missing Manual".썬마이크로시스템즈는 2008년 MySQL AB를 인수했다.
5.1 판: 2008년 11월 27일 출시(이벤트 스케줄러, 파티셔닝, 플러그인 API, 열 기반의 복제, 서버 로그 테이블)
5.1 판에는 5.0에 있던 35개의 현재의 버그 외에 20개의 알려진 크래싱, 그리고 잘못된 결과 버그를 포함하고 있다. (5.1.51판에는 거의 모두 픽스함).MySQL 5.1과 6.0은 데이터 웨어하우징으로 사용할 때는 빈약한 성능을 보인다.  — 부분적으로 단일 쿼리를 진행할 때 다중 CPU 코어를 사용할 수 없기 때문에[35]오라클이 2010년 1월 27일 썬마이크로시스템즈를 인수했다.
MySQL 서버 5.5는 현재 널리 사용가능하다(2010년 12월 기준). 다음과 같은 성능 향상과 특징을 가지고 있다: 기본 스토리지 엔진이 InnoDB이며, 이것은 트랜잭션과 참조 무결성 제한을 지원한다.
개선된 InnoDB I/O 서브시스템
향상된 SMP 지원
Semisynchronous 복제.
SQL 표준에 대응한 SIGNAL 과 RESIGNAL 구문.
유니코드 문자셋 utf16, utf32, 그리고 utf8mb4 지원.
사용자 정의 파티셔닝에 대한 새로운 옵션.


3. LINK

TcX - MySQL HOMEPAGE
DOWNLOADs
MySQL manual

4. LICENSE

MySQL FREE PUBLIC LICENSE - 원문
MySQL FREE PUBLIC LICENSE - 한글요약분

MySQL은 UNIX 계열 및 OS/2  운영체제 기반으로 사용 시에는 아무런 제약이 없지만 소스 및 프로그램의 배포 자체를 통한 상업적 이용은 금지되어  있습니다. 그리고 등록 시에는 Email ,전화 등을 통 해 기술 지원이 된다고 합니다.

- 본 라이선스는 Free Software Foundation 의 GNU Licenses 와는 다릅니다.
- FREE PUBLIC LICENSE를 명시하는 한 본  프로그램의 자유로운 배포 및 수정이 가능합니다. 단 모 든 MS 계열 운영체제에서 돌아가는 MySQL은  본 License에서 제외됩니다. (즉, windows 용 MySQL은 등록을 해야 한다는 말씀)
- 어떠한 매체를 통해서라도 소스의 전세계적인 복사, 배포가 가능합니다.
- 프로그램의 수정 및 그 복사본의  전세계적인 복사, 배포가 가능합니다.
- 소스 및 프로그램을 배포 자체의 판매 행위 및 상업적 이용은 불법입니다.
- 그러나 본 프로그램을 이용한 서비스의 개발 및 그 서비스의 상업적 이용에는 아무런 제한이 없습니다.
- 상업적으로 이용하지 않는 한 전체 소스, 프로그램 의 CD-ROM을 통한  배포가 가능합니다.
- 복사, 수정, 배포 이외의 행위에 대해서는  프로그램 이용에 대해서는 아무런 제약이 없습니다.
- 인위적인 수정에 의한 프로그램의 배포 시에는 반드시 변경된 내용, 파일이름, 변경 일자를 명시해야 합니다.
- 소스만을 배포 할 때에는 반드시 소스 내에 본 라이선스가 명시되어야 합니다.






Articles

1 2 3 4 5 6 7