https://swexpertacademy.com/main/code/problem/problemDetail.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

 

# 문제 정리

주어진 숫자만큼 #을 출력

주어질 숫자는 100,000이하

 

 


# 문제 해결을 위한 개념

 

 


# 정답 코드

n = int(input())
print('#'*n)

https://swexpertacademy.com/main/code/problem/problemDetail.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

# 문제 정리

A와 B가 가위보를 하였다

가위는 1, 바위는 2, 보는 3으로 표현되며 A와 B가 무엇을 냈는지 입력으로 주어진다.

A와 B중에 누가 이겼는지 판별. 단 비기는 경우는 없음

A가 이기면 A, B가 이기면 B를 출력한다.

 

 


# 문제 해결을 위한 개념

 

 


# 정답 코드

a, b = map(int, input().split())
if a == 1 and b == 2:
    print("B")
elif a == 1 and b == 3:
    print("A")
elif a == 2 and b == 1:
    print("A")
elif a == 2 and b == 3:
    print("B")
elif a == 3 and b == 1:
    print("B")
else:
    print("A")

 

 

a, b = map(int, input().split())
if a == 1:
    if b == 2:
        print("B")
    else:
        print("A")
elif a == 2:
    if b == 1:
        print("A")
    else:
        print("B")
elif a == 3:
    if b == 1:
        print("B")
    else:
        print("A")

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=1&contestProbId=AV5QGNvKAtEDFAUq&categoryId=AV5QGNvKAtEDFAUq&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=ALL&select-1=1&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

 

# 문제 정리

2개의 수 a,b를 입력받아 a를 b로 나눈 몫과 나머지를 출력하는 프로그램 작성

각 수는 1이상 10000이하의 정수

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다

각 테스트 케이스의 첫 번째 줄에는 2개의 수가 주어진다

 

 


# 문제 해결을 위한 개념

/는 나누기

// 는 몫

%는 나머지

 

 


# 정답 코드

t = int(input())
for test_case in range(1, t+1):
    a,b = map(int,input().split())
    print("#%d %d %d" % (test_case, a // b, a % b))

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=1&contestProbId=AV5QFZtaAscDFAUq&categoryId=AV5QFZtaAscDFAUq&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=ALL&select-1=1&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

# 문제 정리

1부터 주어진 숫자만큼 모두 더한 값을 출력.

주어질 숫자는 10000을 넘지 않는다.

 


# 문제 해결을 위한 개념

 

< 할당연산자 >

 

1. += 

a += b 는 a = a + b를 의미한다.

왼쪽 변수에 오른쪽 값을 더하고 그 결과를 왼쪽 변수에 할당한다.

 

2. -=

a -= b 는 a = a - b를 의미한다

왼쪽 변수에 오른쪽 값을 빼고 그 결과를 왼쪽 변수에 할당한다.

 

3. *=

a *= b 는 a = a * b를 의미한다.

왼쪽 변수에 오른쪽 값을 곱하고 그 결과를 왼쪽 변수에 할당한다.

 

4. /=

a /= b 는 a = a / b를 의미한다.

왼쪽 변수에 오른쪽 값을 나누고 그 결과를 왼쪽 변수에 할당한다

 

5. %=

a %= b 는 a = a % b 를 의미한다.

왼쪽 변수에 오른쪽 값을 나눈 후 그 나머지를 왼쪽 변수에 할당한다.

 

6. //=

a //= b 는 a = a // b 를 의미한다.

왼쪽 변수에 오른쪽 값을 나눈 후 그 몫을 왼쪽 변수에 할당한다.

 

7. **=

a **= b 는 a = a ** b 를 의미한다.

왼쪽 변수에 오른쪽 값을 제곱하고 그 결과를 왼쪽 변수에 할당한다.

 

 

 

# 정답 코드

n = int(input())
sum = 0
for i in range(1, n+1):
    sum += i
print(sum)
10
55

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=1&contestProbId=AV5QKsLaAy0DFAUq&categoryId=AV5QKsLaAy0DFAUq&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=ALL&select-1=1&pageSize=10&pageIndex=1

 

 

 

# 문제 정리

신문의 헤드라인을 편집하기 위해, 주어지는 문자열의 소문자를 모두 대문자로 바꾸는 프로그램 작성

문자열의 최대 길이는 80 bytes이다

 

 


# 문제 해결을 위한 개념

1. string.upper

문자열을 대문자로 변경하는 함수

 

2. string.lower

문자열을 소문자로 변경하는 함수

 

3. string.isupper

문자가 대문자인지 확인하는 함수

 

4. string.islower

문자가 소문자인지 확인하는 함수

 

 


# 정답 코드

s = input()
print(s.upper())
The_headline_is_the_text_indicating_the_nature_of_the_article_below_it.
THE_HEADLINE_IS_THE_TEXT_INDICATING_THE_NATURE_OF_THE_ARTICLE_BELOW_IT.

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=1&contestProbId=AV5PjsYKAMIDFAUq&categoryId=AV5PjsYKAMIDFAUq&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=ALL&select-1=1&pageSize=10&pageIndex=1&&&&&&&&&&

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

# 문제 정리

두 개의 자연수를 입력받아 사칙연산을 수행하는 프로그램 작성하기.

두 개의 자연수 a,b는 1부터 9까지의 자연수

사친연산 +, -, *, / 순서로 연산한 결과를 출력한다.

나누기 연산의 결과에서 소수점 이하의 숫자는 버린다.

 

 

# 문제 해결을 위한 개념

<파이썬 산술연산 >

a, b = map(int, input().split())
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a//b)  #몫
print(a%b)  #나머지
print(a**b)  #거듭제곱
4 3
7
1
12
1.3333333333333333
1
1
64

 

 


# 정답 코드

a, b = map(int, input().split())
print(a+b)
print(a-b)
print(a*b)
print(a//b)
8 3
11
5
24
2

 

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=1&contestProbId=AV5QSEhaA5sDFAUq&categoryId=AV5QSEhaA5sDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=1&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

 

# 문제 정리

10개의 수를 입력받아 그 중에서 홀수만 더한 값을 출력하는 코드 작성

각 수는 0이상 10000이하의 정수

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력

 

 

 

# 문제 해결을 위한 개념

< range()를 이용한 for 문 >

일반적으로 가장 사용 빈도가 높은 for문은 range() 함수를 활용한 for 일 것이다.

for 카운터변수 in range (반복횟수) :
      반복해서 실행할 명령

 

1. for i in range(N)

i를 0부터 N-1까지(이때 N은 반복횟수) 반복

for i in range(5):
    print("happy")
happy
happy
happy
happy
happy

 

for i in range(5):
    print(i)
0
1
2
3
4

 

 

2, for i in range(1, N+1) :

i를 1(시작 인덱스)부터 N까지 반복

n = int(input())
for i in range(1,n+1):
    print("happy")
4
happy
happy
happy
happy

 

 

3. for i in list :

i를 list(혹은 배열)안에 있는 value를 차례대로 반복/탐색

list를 이용한 for문은 range()자리에 list를 넣었다는 차이점 밖에 없다.

 

반복지표인 i는 반복문 내 로직을 수행한 후 자동으로 i = i + 1이 된다
while문과 달리, i는 별도의 변수선언이 필요 없다.

 

 

< 홀수인지 짝수인지 판별 >

숫자를 i라고 할 때,

i % 2 == 0 이면, i는 짝수

i % 2 != 0 이면, i는 홀수

 

 

< if 문 >

if (조건) :
    조건이 참이면 코드를 실행

 

1. if - elif - else 문

같은 수준의 여러 경우의 수가 있는 조건을 검토할 때, 특정 조건을 만족한다면 다른 조건은 검토할 필요가 없다. 

이럴 경우 if- elif - else 문을 사용할 수 있다.

 

점수가 90 이상이면 A, 80점 이상이면 B, 70점 이상이면 C, 나머지는 D를 부여하는 프로그램을 만든다고 가정

score = int(input())
if score >= 90:
    print("A학점")
elif score >= 80:
    print("B학점")
elif score >= 70:
    print("C학점")
else:
    print("D학점")
92
A학점

89
B학점

 

 

 

# 정답 코드

t = int(input())
for test_case in range(1, t+1):
    n = map(int, input().split())
    sum = 0
    for i in n:
        if i%2 != 0:
            sum += i
    print('#%d %d' % (test_case, sum))

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QQhbqA4QDFAUq

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

# 문제 정리

10개의 수를 입력 받아, 그 중에서 가장 큰 수를 출력하는 코드를 작성.

각 수는 0 이상 10000 이하의 정수이다.

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

 

 

 

# 문제 해결을 위한 개념

 

< range함수 사용법 >

1. range(A) 

range함수 매개변수에 숫자를 한개만 넣는 경우 

0부터 A-1 까지의 정수 범위를 반환한다. A까지가 아닌 A-1까지라는 것에 주의해야 한다.

a = range(7)
print (list(a))
[0, 1, 2, 3, 4, 5, 6]

 

 

2. range(A, B)  

range함수 매개변수에 숫자 두개를 넣는 경우

A부터 B-1까지의 정수 범위를 반환한다. B까지가 아닌 B-1까지라는 것에 주의해야 한다.

a = range(2,7)
print (list(a))
[2, 3, 4, 5, 6]

 

 

3. range(A,B,C)

range함수 매개변수에 숫자 세개를 넣는 경우

A부터 C 숫자만큼의 간격으로 B-1까지의 정수 범위를 반환한다. B까지가 아닌 B-1까지라는 것에 주의해야 한다.

a = range(1,7,2)
print (list(a))
[1, 3, 5]

 

 

range함수는 반복문 for과 자주 사용한다. 

4. for 숫자변수 in 범위 : 

for i in range(7):
    print(i)
0
1
2
3
4
5
6

 

for i in range(2, 7):
    print(i)
2
3
4
5
6

 

for i in range(1,7,2):
    print(i)
1
3
5

 

 

5. for 반복문에서 리스트와 range와 함께 사용하기

list를 반복문으로 실행하다보면 몇번째 인덱스를 실행하고 있는지에 대한 정보를 알아야할 때가 있다.

이때 range함수와 함께 사용하면 이를 쉽게 해결할 수 있다.

arr = [1, 2, 3, 4, 5]
for i in range(len(arr)):
    print("{} 번째 값 {}".format(i, arr[i]))
0 번째 값 1
1 번째 값 2
2 번째 값 3
3 번째 값 4
4 번째 값 5

 

 

6. 반대로 반복문 돌리기

앞서 살펴본 range함수는 숫자가 순차적으로 증가하였다. 반대로 숫자가 내림차순으로 감소하는 경우를 만드는 방법은 크게 두가지가 있다.

 

6.1 range에서 마이너스 숫자 만큼 내려가기

range(A,B,C)는 A에서 B-1까지 C의 간격만큼 이동한다는 뜻이다. 

여기서 중요한 것은 0까지 내림차순으로 가고 싶은 경우, 0-1로 입력하면 -1로 간다는 것이다.

for i in range(7, 0-1, -1):
    print(i)
7
6
5
4
3
2
1
0

 

 

6.2 reversed함수 사용하기

reversed함수는 range함수로 나온 범위를 역순으로 바꿔주는 함수이다.

for i in reversed(range(8)):
    print(i)
7
6
5
4
3
2
1
0

 

 

 

< 표준 입력 방법 >

1. input() 함수

사용자로부터 값을 입력받는 함수

input의 값을 모두 문자열로 받아들인다.

문자열 형태로 입력받으므로 '1 2'처럼 두 숫자 사이에 공백이 있는 하나의 문자열로 받아들인다.

input으로 숫자 입력할 때는 int (정수), flot(소수) 사용한다.

 

 

2. split() 함수

입력받는 문자를 나눌 때 사용하는 함수

문자열 뒤에 점을 붙이고 split()함수를 입력하면 된다.

 

괄호안에 아무것도 넣지 않으면 공백(띄어쓰기, 탭 등)을 기준으로 문자열을 나눈다.

input().split()는 입력받은 문자가 아직 정해지지 않았으나 어떤 문자건 공백을 기준으로 나누겠다는 의미이다.

 

a, b = input().split() 문장에서 = 왼쪽에 a,b 두개로 구분한 것은 튜플(tuple)자료형의 성질을 이용한 것이다.

= 오른쪽에서 입력받은 문자를 공백을 기준으로 나누게 되면 두 개의 문자로 나누어지게 된다. 그 두개의 문제를 각각 a, b변수에 저장하겠다는 의미이다.

 

 

3. map() 함수

여러 요소에 하나의 함수를 한꺼번에 대응한다.

input()함수와 함께 사용되는 경우가 많다. 

 

a, b = map(int, input().split())
print(a+b)

 

 

 

< %d (정수)  >

변수(variable)를 문자열(stritng)과 함꼐 출력할 때는연결(concatenationg) 방식을 사용한다. 이때, %를 사용한다.

% 뒤에 어떤 알파벳을 붙이느냐에 따라 그 형태가 달라진다. 

%f    실수(flot)
%d    정수(integer)
%s    문자열(string)

 

name = "adora"
print("hello %s" % (name))
hello adora

 

위의 예시에서 %s가 name과 바뀐다. 이 때 연결고리 역할을 %가 수행한다.

입력한 name은 adora이므로 %s와 adora가 바뀌어 결과가 출력되는 것이다. 

 

 

 

 

# 정답 코드 

T = int(input())
for test_case in range(1, T + 1): 
    n = list(map(int, input().split())) 
    print("#%d %d" % (test_case, max(n)))

 

1. SVG란

 

스케일러블 벡터 그래픽스(Scalable Vector Graphics, SVG)는 2차원 벡터 그래픽을 표현하기 위한 XML 기반의 파일 형식으로, 1999년 W3C(World Wide Web Consortium)의 주도하에 개발된 오픈 표준의 벡터 그래픽 파일 형식이다. SVG 형식의 이미지와 그 작동은 XML 텍스트 파일들로 정의 되어 검색화·목록화·스크립트화가 가능하며 필요하다면 압축도 가능하다.

 

2. SVG  vs  PNG

 

 

3. SVG 태그

<svg width="가로영역" height="세로영역">
	SVG그래픽
    ...
</svg>

 

SVG는 컨테이너로 묶음을 의미한다. 내부에 그래픽을 담기 위한 그릇과 같은 태그다. 

 

 

4. 모양 요소의 종류

SVG에는 개발자가 사용할 수 있는 몇 가지 요소가 미리 지정되어 있다.

   1) 사각형 : <rect>

   2) 원 : <circle>

<svg
  version="1.1"
  baseProfile="full"
  width="300"
  height="200"
  xmlns="http://www.w3.org/2000/svg">
  <rect width="100%" height="100%" fill="black" />
  <circle cx="150" cy="100" r="90" fill="blue" />
</svg>

 

 

   3) 타원 : <ellipse>

   4) 선 : <line>

   5) 다각선 : <polyline>

   6) 다각형 : <polygon>

   7) 패스 : <path>

 

 

5. 장점

   1) 웹사이트 로딩 속도가 빠르다
SVG는 XML코드이기 때문에 파일의 크기가 작다. 사용 사례에 따라서 SVG는 60%에서 80%정도의 대역폭을 절감한다고 한다. SVG는 HTML파일에 작성이 될 수 있기때문에 외부 이미지를 가져오기 위해서 HTTP request를 할 필요가 없다.

 

   2) 어떤 크기에서든 재활용이 가능 (Future Proof) 
SVG는 크기에 따라 이미지가 왜곡되거나 품질이 떨어져 보이지 않는다. 그렇기 때문에 하드웨어 해상도가 높은 디바이스에서도 품질 저하없이 볼 수 있다.

 

   3) SEO 친화적이다
XML코드에는 키워드, 설명, 링크 등이 포함될 수 있다. 그래서 해당 콘텐츠를 검색 엔진에서 더 쉽게 인실할 수 있도록 할 수 있다.

 

   4) 개발 효율 증대 효과
디자이너가 Figma, Sketch 등에서 디자인한 작업물들을 SVG로 내보내거나, 직접 개발자가 SVG로 다운받을 수도 있어 번거로운 작업을 줄일 수 있다.

 

5) CSS로 디자인 수정이 가능하다
개발자는 SVG파일을 코드로 직접 변경할 수 있기때문에 디자이너에게 재요청 및 기다릴 필요가 없어지고 디자이너는 이미지를 수정할 필요가 없다.

 

 

6. 단점

   1) 너무 복잡한 SVG는 비효율적일 수 있다
많은 모양, 색상, 그라디언트를 포함하여서 파일 크기가 JPG나 PNG 보다 커지는 경우가 종종 있기 때문에 단점이 될 수 있다.

 

   2) 최적화
다양한 편집툴에서 내보내진 SVG 파일에는 중복되고 쓸모없는 정보가 많이 포함되어 있다. 예를 들어, 편집기의 메타 데이터, 주석, 숨겨진 요소가 있다. 최적화 되지 않은 경우에는 PNG보다 파일 크기가 커질 수 있기때문에 최적화를 할 수 있는 도구의 도움을 받는 것이 좋을 수 있다.

'Frontend > HTML,CSS' 카테고리의 다른 글

CSS 관련 기술면접 준비  (3) 2024.09.17
HTML 관련 기술면접 준비  (0) 2024.09.17
반응형 웹 기초  (1) 2024.09.13

1. 정보 시스템 : 데이터를 수집, 조직, 저장하고 정보를 생성, 분배

   1) 데이터 : 수집된 사실이나 값     

       처리 : 데이터 해석. 데이터 사이의 관계를 통해 의미와 유용한 정보를 찾음

       정보 : 수집된 데이터의 유용한 해석이나 데이터 상호관계. 지식으로 만들어진 것

   2) 정보가 유용성을 갖기 위한 2가지 조건 : 정확성, 현재성

 

 

2. 데이터처리 시스템

   1) 형태에 따른 분류

      -1 정형 데이터 : 미리 정해진 구조가 있음. (사무정보)

      -2 반정형 데이터 : 내용 안에 구조에 대한 설명이 있음 (JSON, XML)

      -3 비정형 데이터 : 정해진 구조 없음 (SNS)

 

   2) 특성에 따른 분류

      -1 범주형 데이터 : 종류를 나타내는 값

         (a) 명목형 데이터 : 서열 없음 (성별, 혈액형, 학과명, 거주지)

         (b) 순서형 데이터 ; 서열 있음 (학년, 학점, 회원등급)

      -2 수치형 데이터 : 크기 비교와 연산이 가능한 값

         (a) 이산형 데이터 : 개수를 세어봐야 함 (고객수, 반매량, 합격자수)

         (b) 연속형 데이터 : 측정을 해봐야 함 (, 몸무게, 온도, 점수)

 

   3) 데이터 처리 단위 : 트랜잭션 (하나의 단위로 처리되어야 하는 분리될 수 없는 그룹)

 

   4) 데이터가 조직되고 접근되는 방법에 따른 분류

      -1 일괄 저리

         (a) 시스템 중심

         (b) : 높은 시스템 성능과 낮은 비용처리

         (c) : 응답시간 길고 사전 준비 작업 요구

         (d) 순차 접근 방법

 

      -2 온라인 처리

         (a) 실시간 처리

         (b) : 빠른 응답시간, 사전 준비작업 불필요

         (c) : 낮은 시스템 성능과 높은 처리 비용, 원격 터미널들과 계쏙적인 통신 유지, 통신 제어기가 필요

         (d) 은행, 항공기 예약 시스템 등

 

      -3 분산 처리

         (a) 분산처리 목표 : 투명성 확보

         (b) 위치 투명성 : 액세스 하려는 DB의 실제 위치 알 필요 없이 DB의 논리적인 명칭만으로 액세스 가능

         (c) 중복 투명성 : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 하나의 데이터만 존재하는 것처럼 사용

         (d) 단편화 투명성 : 하나의 릴레이션을 더 작은 조작으로 나누고 각 조각을 별개의 릴레이션으로 처리

            - 릴레이션의 단편화 방법 - 수평적 단편화 : 투플()단위로 분해

                                                     - 수직적 단편화 : 속성()단위로 분해

                                                     - 혼합적 단편화

                                   단편화 수행 조건 - 완전성 : 한 조각에는 속해야 함

                                                                  회복성 : 원래로 회복 가능

                                                                  분리성 : 중복되지 않게 분리

         (e) 병행 투명성 : 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션의 결과는 영향을 받지 않음

         (f) 장애 투명성 : 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리함

 

         (g) : 지역문제에 대한 파악과 신속한 조치, 자료의 공유성 향상, 새로운 응용에 대한 모듈식 구축 용이, 장애에 대한

                   신뢰성 및 가용성 증대, 시스템 운영에 영향을 주지 않고 노드의 폐쇄 및 확장 가능, 상이한 하드웨어 사용 가능

         (h) : DBMS가 수행할 기능이 복잡, 데이터베이스 설계가 어려움, 소프트웨어 개발 비용과 처리비용이 증가, 잠재적

                    오류 증가, 보안의 어려움

 

 

3. 데이터베이스의 정의

   1) 통합된 데이터 : 최소의 통제된 중복

   2) 저장된 데이터 : 컴퓨터가 접근 가능한 저장 매체에 저장

   3) 운영 데이터 : 고유 기능을 수행하기 위해 필요한 데이터

   4) 공용 데이터 : 공동으로 소유, 유지, 이용하는 데이터

 

 

4. 데이터베이스틔 특성

   1) 실시간 접근성

   2) 계속적인 변화 : 갱신, 삽입, 삭제 -> 정확성 유지

   3) 동시 공용

   4) 내용에 의한 참조

   5) 지속성

   6) 상호관련성

 

 

5. 데이터베이스의 개념적 구성 요소

   1) 개체 : 업무가 다루는 사물(대상) ,

   2) 관계 : 업무가 다루는 사물(대상)들 사이에 존재하는 연관,

   3) 속성 : 각 사물(대상)이 가지고 있는 상세한 특성,

 

 

6. 데이터베이스의 구조

   1) 논리적 구조

      -1 사용자의 관점에서 본 데이터의 개념적 구조

      -2 데이터의 논리적 배치

      -3 논리적 레코드

 

   2) 물리적 구조

      -1 저장 관점에서 본 데이터의 물리적 배치

      -2 저장장치에 저장된 데이터의 실제 구조

      -3 추가 정보 포함 : 인덱스, 포인터체인, 오버플로우 등

      -4 물리적 레코드

 

 

7. 3단계 데이터베이스

   1) 외부 스키마

      -1 개인 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한 것

      -2 external schema, subschema, view

 

   2) 개념 스키마

      -1 범 기관적 입장에서 데이터베이스를 정의한 것

      -2 외부 스키마를 모아서 논리적으로 하나로 만든 것

      -3 conceptual schema, logical schema, schema

 

   3) 내부 독립성

      -1 저장 장치 입장에서 DB 전체가 저장되는 방법을 명세한 것

      -2 internal schema, physical schema

 

 

8. 데이터 독립성

   1) 논리적 데이터 독립성

      -1 데이터베이스의 논리적 구조를 변경시키더라도 기존 응용 프로그램들에 아무런 영향을 주지 않는 것을 말함

      -2 개념 시키마가 변경되더라도 어플리케이션에 영향을 덜 받게 하자

      -3 views : 가상 테이블

                       저장 장치 내에 물리적으로 전재하지 않지만, 사용자에게는 있는 것처럼 간주됨

 

   2) 물리적 데이터 독립성

      -1 데이터베이스의 물리적 구조를 변경시키더라도 기존 응용 프로그램이나 데이터베이스의 논리적 구조에 아무런

          영향을 주지 않는 것을 말함

      -2 내부스키마가 변경되더라도 프로그램에 영향 주지 않게 하자

+ Recent posts