데이터가 스칼라 일 때 무엇을 의미합니까?


78

스칼라가 정확히 무엇을 의미하는지 모르겠지만 올바르게 생각하고 있는지 확인하려고합니다. 스칼라는 데이터 유형이 임의 유형일 수 있거나 시스템이 데이터가 무엇인지 미리 알 수없는 임의성에 관련됩니다.


재미있는 사실 : 최근에 XQuery를 사용하여 보낸 XML 플랫폼은 이러한 원자 값을 호출하는 것을 좋아합니다. 나는 이것이 참조 / 검색어에 대한 의견을 추가하면서 밀접하게 관련되어 있다고 생각합니다.
찰스 로스

답변:


112

"스칼라"라는 용어는 선형 대수학 에서 유래 한 것으로, 벡터 또는 행렬과 단일 숫자를 구별하는 데 사용됩니다. 컴퓨팅의 의미는 비슷합니다. 정수와 같은 단일 값을 식별하거나 배열과 같은 데이터 구조와 부동합니다. 이 구별은 Perl에서 매우 두드러지며, 여기서 $시길 ( 's'와 유사한)은 스칼라 변수를 나타내며 @시길 ( 'a'와 유사한)은 배열을 나타냅니다. 요소 자체의 유형과 관련이 없습니다. 숫자, 문자, 문자열 또는 객체 일 수 있습니다. 스칼라라고하는 것은 그 중 하나 가 있다는 것입니다.


6
이것은 같은 용어가 다른 상황에서 다른 것을 어떻게 의미 할 수 있는지에 대한 좋은 예입니다. C 나 파스칼 같은 언어에서, 스칼라는 간단한 "빌딩 블록"과 같은 종류를 의미 int하거나 char, 하지 (하나이 경우에도) 객체와 같은 구조화 된 유형.
Caleb

2
또한 배열 외에도 스칼라는 구조체 또는 클래스와 같은 복합 데이터 구조가 아니라고 덧붙입니다. 배열이라는 차이점은 동일한 유형의 여러 요소 인 반면, 구조는 임의 유형의 여러 요소입니다.

1
또한 문자열 스칼라가 아닌 값 있습니다. Perl과 같은 언어는 스칼라로 취급하지만 C 기반 언어에서는 배열 또는 객체라고 주장합니다.

1
@Karl 나는 Perl을 모르지만 sigil 이 무엇인지 명확히 할 수 있습니까?
Geek

2
@Geek,와 같이 변수 앞에 놓인 기호 $variable입니다. 참고 항목 위키 피 디아 페이지를 .
Karl Bielefeldt

27

스칼라는 단순히 개별 값을 보유하는 변수입니다 . 이 설명을 위해 스칼라는 숫자 모음이 아니라 단일 숫자 라고 가정합니다 .

예를 들어 SQLCommand 클래스ExecuteScalar () 메서드 와 마찬가지로 튜플 대신 숫자반환 하는 SQL 쿼리 결과는 쿼리에서 반환 한 결과 집합에서 첫 번째 행의 첫 번째 열 값을 반환합니다. 일반적으로 COUNT 또는 AVERAGE, 새 레코드의 ID 또는 쿼리에 의해 처리 된 레코드 수와 같은 집계 값을 검색하는 데 사용됩니다.


19

Karl Bielefeldt의 위대한 답변에 대한 추가 니모닉

그것에 대해 생각하는 간단한 방법은 "이것이 규모 일 수 있습니까?"입니다.

정수는 스케일 일 수 있습니다.

고정 크기 정수는 예를 들어 -2147483648에서 2147483647 사이의 스케일 일 수 있습니다.

실수는 스케일 일 수 있습니다.

문자, 부울 또는 고정 소수점은 모두 스케일에있을 수 있습니다. 문자열조차도 규모가 될 수 있습니다 (우리는 정렬에 사용합니다).

따라서 "스칼라".

데이터베이스 행은 스케일에있을 수 없습니다. 복소수는 스케일에있을 수 없습니다. 전자 메일 메시지를 나타내는 개체는 크기를 조절할 수 없습니다. 배열, 벡터 또는 행렬은 축척에있을 수 없습니다.


10
문자열이 스케일 일 수 있다면 왜 배열이 아닌가? "이건 규모일까요?" 적어도 나에게는 직관적 인 결과를주지 않습니다.
VBCPP

2
@VBCPP {1, 2}를 포함하는 스케일에서 {2, 1}은 어디에 있습니까? 전이나 후에? 이제 주문을 시행 할 수는 있지만 명확한 주문은 없습니다. 나는 그것에 대해 생각하기 쉬운 방법을 제공하려고 노력하고 있음을 명심하십시오. 즉, 여기에는 맥락의 요소가 있습니다. 문자열은 컨텍스트에 따라 스칼라로 간주되거나 고려되지 않을 수 있습니다. SQL에서는 좋은 이유 때문에 스칼라이고 C에서는 좋은 이유가 아닙니다.
존 한나

7
이것은 단지 잘못 이다.
Andrew Medico

2
칼 빌레펠트가 진드기를 가져야한다고 생각하지만 분명히 "정확하지 않다"는 것에 동의하지 않습니다. 이것은 코멘트하기에 너무 긴 니모닉입니다. 더 나은 대답입니다.
Jon Hanna

2
"정확하지 않다"라는 의견은 대답이 의미가 없으며 @VBCPP의 질문에 대한 귀하의 답변이 그의 질문에 대답하지 않는다는 생각에서 비롯된 것 같습니다. 나는 니모닉의 아이디어를 좋아하지만, 예를 들어, 정수가 스케일에 있다는 중요성을 설명해야합니다. 고양이를 TV에 넣는 것에 대해 이야기 할 수도 있습니다.
turboladen

10

컴퓨팅에서 많은 용어가있는 것처럼; 단어의 기원은 더 많은 물리적 특성과 관련이 있습니다. 스칼라라는 용어는 컴퓨팅에서 비교적 오래되었습니다. 요즘 정의는 덜 엄격합니다. 컴퓨터 메모리에 데이터를 저장할 때이 데이터는 하나의 주소 (1 바이트 *)에 맞거나 맞지 않을 수 있습니다. 그것이되었을 때, 그것은 스칼라 (scalar)라고 불렸고, 그것이 합성 (composite)이라고 불리지 않았습니다. 주로 CPU가 한 번에 하나의 주소 / 데이터 조각 (= 1 바이트) 만 처리 할 수 ​​있기 때문입니다. @Karl Bielefeldt에 의해 언급 된 바와 같이; 이 용어는 실제로 대수에서 나왔습니다.

문자열이기 때문에 문자열을 문자열이라고 부릅니다. 문자는 스칼라이고 문자열은 복합입니다. 여러 주소에 1 개의 데이터 (데이텀)를 저장하면 선이 약간 흐려집니다. CPU가 하나의 명령으로 데이텀을 처리 할 수 ​​있었을 때 스칼라였습니다.

요즘 스칼라는 어떤 특이 값이며, 어떤 특이 값이 다른 언어마다 다르게 정의 될 수 있습니다. 정수, 부동 소수점, 문자, 문자열, 부울 및 열거 형은 요즘 가장 부분적으로 고려되는 스칼라입니다. 배열,리스트, 트리, 객체 등은 아닙니다.

(* 명확하게하기 위해 1 바이트를 말하지만 기술적으로 6 비트가 펀치 카드에 더 자주 사용되는 날과 나중에 자기 띠에 사용되는 날에 대해 이야기하고 있습니다)

면책 조항 : 나는 인터넷에서 이것에 대한 언급을 찾을 수 없으며, 학교와 오래된 책에서 정보를 얻었습니다. 예전의 것이 아니므로 누군가 내 답변을 수정 / 확인 또는 거부 할 수 있다면 좋을 것입니다.


9

스칼라는 배열, 구조, 객체, 복소수 벡터 (대략 1, 2/3, 3.14 등), 일반적으로 정수, 고정 소수점 또는 부동 소수점 (단일 또는 이중)과 같은 간단한 단일 숫자 값입니다. 실수 + 허수 또는 크기 + 각도 구성 요소), 하나 이상의 숫자 값을 포함하는 더 높은 차원의 벡터 또는 행렬 등의 데이터 유형.

그러나 8 비트 바이트의 컴퓨터 메모리로도 평 평화되고 표현 될 수있는 매우 복잡한 데이터 유형의 정렬은 하나의 매우 긴 / 큰 이진 스칼라 수로 표현 될 수 있습니다. Turing은이 기술을 사용하여 전체 컴퓨터 프로그램을 하나의 스칼라 숫자로 나타냅니다.


이를 통해 "불법"프로그램의 숫자 표현 불법 숫자불법 소수 와 같은 개념을 사용할 수 있습니다.
앤드류

스칼라는 숫자 일 필요는 없습니다. 문자열, 부울 또는 날짜 / 시간도 스칼라입니다.
david.pfx

그래서 내가 (예에 대한 여러 스칼라의 필드를 기반으로 날짜 복잡한 클래스를 만들 경우 INT 달에 한 해 하루 하나)?
Pierre Arlaud

1
@ david.pfx : 문자 배열로 볼 때 문자열이 스칼라가 아닙니다.
MSalters

1
@MSalters : 물론, 비트 배열로 간주되는 정수도 마찬가지입니다. 단일 불변 익명 값으로 저장 및 검색 할 수있는 것은 스칼라이며 대부분의 언어를 사용하면 다른 방식으로도 볼 수 있더라도 문자열, 날짜, 복합, 점 등을 사용하여이를 수행 할 수 있습니다.
david.pfx

1

스칼라는 단어는 스칼라의 형용사 형태 인 라틴어 단어 스칼라리스 ( "사다리를위한 라틴어")에서 파생됩니다. 영어 단어 "scale"도 스칼라에서 나옵니다. 출처

스칼라는 개별 값을 보유하는 변수입니다.

예를 들면 다음과 같습니다.

스칼라 변수 : 다양한 학생들의 이름을 변수 세트로 나타내려고한다고 가정하십시오. 각 개별 변수는 다음과 같은 스칼라 변수입니다.

NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

스칼라 함수 : SQL 스칼라 함수는 입력 값을 기반으로 단일 값을 리턴합니다.

UCASE() - Converts a field to upper case
LCASE() - Converts a field to lower case
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.